我有一个包含p:inputText与required="true"和相应的p:outputLabel的对话框。
<p:outputLabel for="name" value="First Name" />
<p:inputText id="name" value="#{userManagedBean.name}" required="true"/>
我提交了没有任何值的对话框,导致p:outputLabel用红色required标记表示的验证错误。但是在重新打开对话框而不提交时,outputLabel仍然处于无效状态(红色字体)。它不会得到更新,直到我提交或从其他页面导航回来。我试图更新整个对话框,但它不会影响标签。
Thanks in advance
这是预期的行为,因为输入组件(和相关组件)将在验证失败后保持其状态。只有在重新执行完整的请求和再次执行完整的JSF生命周期之后,状态才会改变。
您没有确切地说明如何"更新"面板,但我可以建议<p:resetInput/>
显式重置相关输入组件的状态,而不必重新提交整个<h:form/>
。如果您发布了更有意义的代码,我可能已经能够给出一个工作片段
不会更新,因为打开对话框是在javascript(客户端)中发生的。
你需要在打开对话框时重新渲染它