渲染在页面初始加载期间正常工作,但是一旦提交了表单并且某些组件失败,验证重新渲染不会触发,则面板不再显示和隐藏,并且页面必须再次刷新。我还是jsf的新人。
示例代码
<p:selectOneRadio id="accommodationOptions" value="#{travelRequestMBean.accommodationOptions}">
<f:selectItem itemLabel="#{field['accord3Radio2']}" itemValue="2" />
<f:selectItem itemLabel="#{field['accord3Radio1']}" itemValue="1" />
<f:ajax render="panelMoreAccommodation2"/>
</p:selectOneRadio>
<p:panel id="panelMoreAccommodation2" widgetVar="panelMoreAccommodation2"
visible="#{travelRequestMBean.accommodationOptions == 1}" closable="true" toggleable="true">
<p:graphicImage url="/images/hotel-noun_project_4398.svg" alt="#{field['accord3Label2']}" height="24px" />
<h:outputText value="#{field['accord3Label2']}" />
</p:panel>
此外,我尝试使用支持bean中的布尔属性,并在selectoneradio上使用ajax事件,结果仍然相同,面板不执行任何操作。
答案 0 :(得分:0)
我无法看到您验证输入的位置。但是看看http://www.primefaces.org/showcase/ui/csv/basic.xhtml与
的组合update=":panelMoreAccommodation2"
而不是可见的使用渲染。
答案 1 :(得分:0)
最后进行了一些调整,问题是目标面板上的这个属性
closable="true"
删除此属性后,即使在验证失败的提交后,ajax更新仍然有效。