我有这样的表格:
<h:form id="form">
<h:panelGrid columns="3" >
<h:outputLabel for="name" value="Name:" />
<h:inputText id="name" value="#{register.person.name}" >
<f:ajax event="blur" listener="#{register.validateName}" render="m_name" />
</h:inputText>
<rich:message id="m_name" for="name" ajaxRendered="false"/>
<!-- other fields -->
<h:commandButton value="Register" action="#{register.registerPerson}" >
<f:ajax execute="@form" render="out" />
</h:commandButton>
<h:outputText value="#{register.recordStatus}" id="out" />
</h:panelGrid>
如果我尝试注册没有姓名的人,则不会显示错误消息。相反,删除某人时会显示错误消息:<f:ajax execute="@form" render="out" />
。
为什么会这样?
答案 0 :(得分:3)
您还需要在render
中添加邮件的ID。
<f:ajax execute="@form" render="m_name out" />
如果您有多条消息,也可以渲染整个表单。
<f:ajax execute="@form" render="@form" />
答案 1 :(得分:0)
可能会有点晚,但是......
ajaxRendered
的属性<rich:message>
的默认值为true
,强制它出现在AJAX响应中。
您在表单中将其设置为false
,因此您必须指定哪些AJAX调用应重新呈现它。