Jsf p:outputLabel不会更新

Jsf p:outputLabel不会更新,jsf,label,updates,Jsf,Label,Updates,我有一个对话框,其中包含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标记指示的验证错误。但在未提

我有一个对话框,其中包含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仍处于无效状态(红色字体)。在我提交或从其他页面导航回来之前,它不会得到更新。我试图更新整个对话框,但它不会影响标签


提前感谢

它不会被更新,因为打开对话框是在javascript(客户端)中进行的


您需要在打开对话框时重新呈现它。

这是预期的行为,因为输入组件(和相关组件)将在验证失败后保持其状态。只有在重新执行完整请求并再次执行完整的JSF生命周期后,状态才会更改


您没有确切说明如何“更新”面板,但我建议您明确重置相关输入组件的状态,而无需重新提交整个
。如果你发布了更有意义的代码,我可能会给出一个工作片段

“在不提交的情况下重新打开对话框”,这有什么关系?相关信息:正在工作,但在commandLink提交中,我必须给出“ajax=false”,这可以避免吗?@user1782556-是的,可以避免,使用
是的,我已经使用它工作了,但是submitcommandlink只有ajax=“false”,我希望它在ajax=“true”上工作submit@user1782556您需要发布更多的代码来显示如何使用组件和重置目标。可能与重置触发器上的
update
属性有关,或者与设置中的其他ajax问题有关。在JSF中,如何重新渲染?如果使用命令链接打开对话框,请将对话框/组件的id添加到“render”属性中,例如: