我正在尝试重现以下example,但在dynamicFieldList.xhtml
中未检测到#{cc.table}
,并且出现以下错误:
/WEB-INF/tags/dynamicFieldList.xhtml @17,93 binding="#{cc.table}": Target Unreachable, identifier 'cc' resolved to null
以下是代码行
<ui:composition
...
xmlns:cc="http://java.sun.com/jsf/composite">
...
<cc:implementation>
<h:dataTable id="table" binding="#{cc.table}" value="#{cc.attrs.value}" var="field">
<h:column><h:outputLabel value="#{field.label}" /></h:column>
// ...
</cc:implementation>
...
可能与同一问题相关联,但也未检测到“Field”类的outputLabel中的标签和值。可能是什么原因?
答案 0 :(得分:0)
我不希望在复合组件实现中的此位置使用内容辅助。
通过创建以下文件夹:WebContent&gt;资源&gt;我放置复合材料组件的mycomponents解决了我的问题。
答案 1 :(得分:0)
错误消息中的路径看起来不正确。
/WEB-INF/tags/dynamicFieldList.xhtml
复合材料组件并不属于那里。您似乎已将复合组件视为标记文件。这个不对。它与标记文件有很大不同。复合组件应放在表示库名称的子文件夹中的JSF /resources
文件夹中。以下示例使用components
作为库名。
WebContent
|-- META-INF
|-- WEB-INF
|-- resources
| `-- components
| `-- dynamicFieldList.xhtml <--- Here.
`-- some.xhtml
此外,您不需要像在{tag}文件中那样在*.taglib.xml
文件中声明它们。您可以通过隐式http://java.sun.com/composite/[libraryName]
XML命名空间声明它们。
<html ... xmlns:my="http://java.sun.com/composite/components">
...
<my:dynamicFieldList ... />