<a4j:commandbutton>表单提交行为</a4j:commandbutton>

时间:2012-08-02 17:34:00

标签: richfaces jsf-1.2 ajax4jsf richfaces-modal

我想了解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}"
/>

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

提前谢谢!

1 个答案:

答案 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