gpt4 book ai didi

java - 来自支持 bean 的非空数据列表在 jsf 形式中为空

转载 作者:行者123 更新时间:2023-12-02 02:48:39 25 4
gpt4 key购买 nike

我有一个表单,里面有一个 p:commandButton ;当单击它时,将调用托管 bean 中的一个函数,该函数将数据收集到列表中。我需要在同一 jsf 页面上以另一种形式在对话框中打印此列表。问题是,即使我的支持 bean 中的列表不为空,但在 jsf 页面上的表单中它却为空。我究竟做错了什么?这些是形式:

<h:form>
<p:fieldset legend="Search for people" toggleable="true" toggleSpeed="500" style="width: 365px">
<p:panelGrid columns="2" >
<p:outputLabel for="confName" value="Name"/>
<p:inputText id="confName" value="#{controler.name}" />
...
</p:panelGrid>
<p:commandButton update="gstSrch" id="searchButton" value="Search" actionListener="#{controler.search}" />
</p:fieldset>
</h:form>
<h:form>
<p:repeat value="#{controler.people}" var="con" id="gstSrch" rendered="#{not empty controler.people}">
<p:panelGrid columns="4">
<h:outputText value="#{con.name}"/>
....
</p:panelGrid>
</p:repeat>
</h:form>

托管 bean 是 SessionScoped,在所有其他形式中使用时它都能正常工作。您能友善地为我指出正确的方向吗?看起来它要么以某种方式重置,要么从未实际设置过。我尝试将 Application Scoped 放入我的托管 bean 中,但结果是相同的。我也将所有这些都放在一种形式中,但结果仍然相同。谢谢。

最佳答案

为您的第二个表单分配一个 ID,并使用它来更新您的组件

<h:form>
<p:fieldset legend="Search for people" toggleable="true" toggleSpeed="500" style="width: 365px">
<p:panelGrid columns="2" >
<p:outputLabel for="confName" value="Name"/>
<p:inputText id="confName" value="#{controler.name}" />
...
</p:panelGrid>
<p:commandButton update=":myForm:gstSrch" id="searchButton" value="Search" actionListener="#{controler.search}" />
</p:fieldset>
</h:form>
<h:form id="myForm">
<p:repeat value="#{controler.people}" var="con" id="gstSrch" rendered="#{not empty controler.people}">
<p:panelGrid columns="4">
<h:outputText value="#{con.name}"/>
....
</p:panelGrid>
</p:repeat>
</h:form>

关于java - 来自支持 bean 的非空数据列表在 jsf 形式中为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44191280/

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