JSF2自定义组件问题

时间:2017-05-11 13:01:15

标签: jsf-2 facelets facelet-tag

我创建了一个在xhtml视图中使用的自定义组件,它使用属性值并使用Netbeans8.1和glassfish4.1在JSF 2.1中打印它(如下面代码中的helloworld)。我通过扩展UIComponentBase重写族来创建自定义组件,并通过扩展UIComponentELTag覆盖componentType和rendererType方法来编码begin和custom组件标记类。我为它定义了一个标记库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的子项:组合但没有运气。

我在自定义组件中设置了一个断点并尝试调试,但控制甚至没有进入断点。

由于控制不会破坏点,所以它意味着我的自定义组件没有被servlet注册?如果是这样,请告诉我我做错了什么。

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

我尝试使用JSF2.2.7,但也出现了同样的问题。

1 个答案:

答案 0 :(得分:0)

我无法找到根本原因,但解决了我的问题。我尝试使用JSF 2.2.7 jar相同的代码,但我使用了注释。 正如在2.2.7中没有使用的问题所提到的那样,是因为我使用旧时尚代码,比如创建taglib并在部署描述符中更新它。