0

JSF に入力の検証を行わせ、検証エラーの表示方法を制御させる方法はありますか? 使用は避けたいh:message

h:message検証サポートが必要なフォーム内のすべての入力コンポーネントの下にコンポーネントを記述すると、コードが乱雑になりすぎます。ページにはいくつかのフォームがあるためh:messages、他のフォームのエラー メッセージも表示されるため、使用はオプションではありません。したがって、検証後にプレゼンテーション層に送信されたエラー メッセージを処理し、JS/Jquery を使用して自分でエラー プレゼンテーション タスクを実行したいと考えています。では、JSF 検証サービスによってスローされたエラーをどのように処理すればよいでしょうか?

4

1 に答える 1

0

<h:messages>に基づいて条件付きでレンダリングするだけUIForm#isSubmitted()です。

<h:form binding="#{form1}">
    <h:messages rendered="#{form1.submitted}" />
    ...
</h:form>
<h:form binding="#{form2}">
    <h:messages rendered="#{form2.submitted}" />
    ...
</h:form>
<h:form binding="#{form3}">
    <h:messages rendered="#{form3.submitted}" />
    ...
</h:form>

または、ajaxの魔法を取り入れて、ビュー全体ではなく現在のフォームのみを更新します。

<h:form>
    <h:messages />
    ...
    <h:commandButton ...><f:ajax execute="@form" render="@form" /></h:commandButton>
</h:form>
<h:form>
    <h:messages />
    ...
    <h:commandButton ...><f:ajax execute="@form" render="@form" /></h:commandButton>
</h:form>
<h:form>
    <h:messages />
    ...
    <h:commandButton ...><f:ajax execute="@form" render="@form" /></h:commandButton>
</h:form>

そのため、検証後にプレゼンテーション層に送信されるエラーメッセージを処理し、JS/Jqueryを使用して自分でエラープレゼンテーションタスクを実行したいと思います。

を置き換えるカスタムコンポーネントまたはレンダラーを作成します<h:messages>

于 2012-10-04T13:32:53.780 に答える