【发布时间】: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