我正在尝试在一个页面上使用多个 h:form,它们由一个 ui:repeat 组件渲染。如果只有一个生成的 h:form,则一切都可以完美工作。如果有多个 h:form,则只有最新的 h:form 能够正常工作!(如果我尝试提交除最后一个之外的另一个表单,则仅传递 null 给我的服务!)
<ui:repeat var="element" value="#{myService.elementList}">
<rich:simpleTogglePanel switchType="client"
label="#{element.codeElement} - #{element.description}"
opened="#{myService.isUiSelected(element)}"
onexpand="expand#{element.codeElement}()"
oncollapse="collapse#{element.codeElement}()">
<h:form id="newKindForm">
<a:commandLink ajaxSingle="true" id="idLink" onclick="#{rich:component('newTargetPanel')}.show()">
<a:commandButton id="myButton"
value="new Form"
action="#{myService.newForm(element)}"/>
</a:commandLink>
</h:form>
<rich:modalPanel id="newTargetPanel" autosized="true" width="450">
<f:facet name="header">
<h:outputText value="My Pannel Title" />
</f:facet>
<f:facet name="controls">
<h:panelGroup>
<h:graphicImage value="/img/close.png"
id="hidelink"
styleClass="hidelink" />
<rich:componentControl for="newTargetPanel"
attachTo="hidelink"
operation="hide"
event="onclick" />
</h:panelGroup>
</f:facet>
<!-- THIS IS THE PROBLEMATIC FORM -->
<h:form>
<a:include viewId="../myRepeatableForm.xhtml" />
</h:form>
</rich:modalPanel>
</ui:repeat>
有一些建议吗?
谢谢
ui:repeat
有7次迭代,并且每次迭代的字段名称相同(也就是没有索引),那么这是否会引入歧义? - amphibientnewKingRepeat:0:newKindPanel
,newKingRepeat:1:newKindPanel
,newKingRepeat:2:newKindPanel
等等。ui:repeat
将其自己的id和当前索引前缀添加到其中的组件id中。execute =“newKingRepeat:#{varStatus.index}:newKindPanel”
部分决定将提交哪个span内容到服务器端。 - tt_emrah