【问题标题】:JSF2 custom component issueJSF2 自定义组件问题
【发布时间】:2017-10-10 12:06:57
【问题描述】:

我创建了一个自定义组件,用于 xhtml 视图,它使用 Netbeans8.1 和 glassfish4.1 在 JSF 2.1 中获取属性值并打印它(如下面代码中的 helloworld)。我通过扩展 UIComponentBase 覆盖系列创建了一个自定义组件,并通过扩展 UIComponentELTag 覆盖 componentType 和 rendererType 方法来编码开始和自定义组件标记类。我为它定义了一个标签库 test.taglib.xml 并在 web.xml 中注册了它。

下面是查看代码。

<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://xmlns.jcp.org/jsf/html">
<h:body>

    <h2>JSF Custom Input FacesComponent Example</h2>
    <h:form>
        <ui:composition 
                   xmlns:custom="http://packt.net/cookbook/components"
                        xmlns:ui="http://java.sun.com/jsf/facelets">
            <custom:testInput helloworld="test component!!"/>
        </ui:composition>
    </h:form>

</h:body>
</html>

问题是 - 它只显示 html 值而不显示自定义组件属性值。

当我尝试 jsp 视图(使用 tld 文件)时,同样的示例也适用。

我尝试直接使用自定义组件标签或作为 ui:composition 的子标签,但没有运气。

我在自定义组件中放了一个断点,尝试调试,但是控件连断点都没有。

既然控件不会断点,那么这是否意味着我的自定义组件没有被 servlet 注册?如果是这样,请告诉我我做错了什么。

我是 JSF 的新手,所以如果我遗漏了任何一点,请告诉我。

我对 JSF2.2.7 进行了同样的尝试,但也出现了同样的问题。

【问题讨论】:

    标签: jsf-2 facelets facelet-tag


    【解决方案1】:

    我找不到根本原因,但解决了我的问题。我用 JSF 2.2.7 jar 尝试了相同的代码,但我使用了注释。 正如问题中提到的它不适用于 2.2.7,是因为我使用的是旧式代码,例如创建 taglib 并在部署描述符中更新它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-12-07
      • 2010-11-14
      • 2023-03-19
      • 1970-01-01
      • 2013-04-03
      • 1970-01-01
      • 2011-04-11
      • 2016-05-06
      相关资源
      最近更新 更多