我想了解Richfaces上a4j背后的行为。
我有一个h:表单,其中包含h:inputText和a4j:commandButton。按钮操作在我的bean中调用一个方法,oncomplete显示Richfaces.showModal包含一些内容。
<h:form id="i_form">
<h:inputText value="#{ordemManagedBean.formEntity.emissor.cpf}" required="true" />
<a4j:commandButton value="#{msg.labelbtn}" reRender="f_FormordemEmissorModal" oncomplete="Richfaces.showModalPanel('ordemEmissorModal');" action="#{ordemManagedBean.consultarCadastroEmissor}" />
</h:form>
外面的h:表格我有一个ui:decorate导入我的Modal,它有一个表格。
<ui:decorate template="/templates/ordemEmissorModal.xhtml">
<ui:param
name="beanForm"
value="#{ordemManagedBean}"
/>
问题:当我在单击按钮时提交表单时,会触发该方法并显示模态,但它仅在第一次起作用。当我关闭我的模态,更改输入值并提交时,不会调用该方法,并且我的模态会显示旧内容。我的第二次提交表格中发生了什么?
提前谢谢!
答案 0 :(得分:1)
要检查验证错误,您可以使用<h:message>
或<h:messages>
并在id
属性上提供<h:inputText>
的{{1}},并在{for
提供<h:message>
1}}当请求被触发时,由于您使用的是richfaces,还有<rich:message>
或<rich:messages>
,功能相同,但后者有更多其他功能。
<h:form id="i_form">
<h:inputText id="input" value="#{ordemManagedBean.formEntity.emissor.cpf}" required="true" />
<rich:message for="input" id="error" />
<a4j:commandButton value="#{msg.labelbtn}" reRender="f_FormordemEmissorModal, error" oncomplete="Richfaces.showModalPanel('ordemEmissorModal');" action="#{ordemManagedBean.consultarCadastroEmissor}" />
</h:form>
您也可以查看此帖子。 Jsf Validation