我有一个像这样的facelets标签:
<ui:composition>
<h:outputText value="#{label}"/>
<h:inputText id="input" value="#{value}"/>
<h:message for="input"/>
</ui:composition>
现在如果我在同一页面上两次包含这个facelets标签,我会得到一个例外,抱怨重复的组件ID。这里提出的一个解决方案https://stackoverflow.com/a/21572756/1785730是为id提供前缀。但是,我发现每次使用这个facelets标签时都需要提出一个id前缀很麻烦。顺便说一下,我不需要标签之外的h:inputText的id。
所以我想到了解决这个问题的两种方法:
答案 0 :(得分:-2)
您的页面应该是这样的
<f:view contracts="default" transient="false">
<ui:composition template="/template.xhtml">
<ui:define name="content">
<h:form>
inputs
</h:form>
</ui:define>
</ui:composition>
</f:view>
在ui构图中你应该用ui定义并在其中形成和输入。