2

Richfaces の a4j の背後にある動作を理解したいと思います。

ah:inputText と a4j:commandButton を含む ah:form があります。ボタン アクションは 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 があります。

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

問題: ボタンのクリックでフォームを送信すると、メソッドが起動され、モーダルが表示されますが、最初にしか機能しません。モーダルを閉じ、入力値を変更して送信すると、メソッドは呼び出されず、モーダルは古いコンテンツで表示されます。2 回目のフォーム送信で何が起こっていますか?

前もって感謝します!

4

1 に答える 1

1

検証エラーをチェックするには、属性で<h:message>または<h:messages>を指定し、リクエストが発生したときにを再レンダリングします。リッチフェイスを使用しているため、またはもあります。機能は同じですが、後者にはさらに多くの機能があります。 。id<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 に答える