我有一个项目
OmniFaces 2.6.8
facelets tag files
,使用OmniFaces
<o:tagAttribute>
.我注意到的一些标记文件
奇怪的行为
,也就是说,
<o:tagattribute>
好像不工作我
IllegalStateException: Duplicate component ID 'myForm:outer' found in view.
因此,因为
id
-外部标记的属性没有被清除,因此在内部标记中被重用(正如OmniFaces的show case中所示)。
我可以用两个非常简单的标记文件重现这个问题。下面是我如何首先使用这些标记文件:
<h:form id="myForm">
<my:outer id="outer">
<my:inner />
</my:outer>
</h:form>
这是标签文件的完整代码。
外部.xhtml:
<ui:composition xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
xmlns:h="http://xmlns.jcp.org/jsf/html"
xmlns:o="http://omnifaces.org/ui">
<o:tagAttribute name="id" />
<h:panelGroup id="#{id}">
<ui:insert/>
</h:panelGroup>
</ui:composition>
内.xhtml:
<ui:composition xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
xmlns:h="http://xmlns.jcp.org/jsf/html"
xmlns:o="http://omnifaces.org/ui">
<o:tagAttribute name="id" />
<h:inputText id="#{id}">
<ui:insert/>
</h:inputText>
</ui:composition>
我注意到,问题并没有出现,只要我改变
inner.xhtml
使用
<h:outputText>
而不是
<h:inputText>
是的。当我添加一个
value
-属于
<H:输入文本>
是的。
这是OmniFaces的一个缺陷,还是我做错了什么?
(
更新
:我创建了
issue
在OmniFacesBugTracker中。)
我的环境
-
全向面2.6.8
-
莫哈拉2.2.15
-
Wildfly 10.1.0.决赛