<a4j:命令按钮>表单提交行为



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

我有一个h:form,其中包含一个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:form我有一个ui:decorate,它导入了我的Modal,它周围有一个form。

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

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

提前谢谢!

要检查验证错误,您可以使用<h:message><h:messages>,在for属性上提供<h:inputText>id,并在触发请求时重新渲染<h:message>。由于您使用的是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验证

最新更新