2

我想了解 Richfaces 上 a4j 背后的行为。

我有 ah:form 和 ah: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:form 之外,我有一个 ui:decorate 可以导入我的 Modal,它周围有一个表单。

<ui:decorate template="/templates/ordemEmissorModal.xhtml">
        <ui:param
            name="beanForm"
            value="#{ordemManagedBean}"
/>

问题:当我点击按钮提交表单时,该方法被触发并显示模式,但它只在第一次工作。当我关闭我的模态,更改输入值并提交时,不会调用该方法,并且我的模态显示为旧内容。我的第二个表单提交中发生了什么?

先感谢您!

4

1 回答 1

1

要检查验证错误,您可以使用<h:message>or<h:messages>并在属性上提供id您的 并在触发请求时重新渲染 ,并且由于您使用的是richfaces 还有or ,因此功能相同,但后者具有更多附加功能.<h:inputText>for<h:message><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 验证

于 2012-08-10T00:29:43.943 回答