gpt4 book ai didi

jsf - ui:repeat中的多个h:forms

转载 作者:行者123 更新时间:2023-12-04 22:23:19 26 4
gpt4 key购买 nike

我正在尝试在页面上使用ui:repeat组件呈现多个h:forms。如果我只有一个生成的h:form,那么一切都完美。如果我有多个h:forms,则只有最新的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>


有什么建议吗?

谢谢

最佳答案

您可以以单一形式包含所有内容,并使用execute属性仅提交所需的元素。像这样:

<h:form id="newKindForm" prependId="false">
<ui:repeat id="newKindRepeat" var="element"
value="#{myService.elementList}" varStatus="varStatus">
<h:panelGroup id="newKindPanel">
<a:commandButton id="myButton"
execute="newKindRepeat:#{varStatus.index}:newKindPanel"
onclick="#{rich:component('newTargetPanel')}.show()"
value="new Form"
action="#{myService.newForm(element)}"/>
</h:panelGroup>
</ui:repeat>
</h:form>


请注意prependIdh:formidvarStatusui:repeatexecute

顺便说一句,假设a:commandButton代表ajax4jsf,我不建议使用嵌套在commandLink中的commandButton。

关于jsf - ui:repeat中的多个h:forms,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5697186/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com