0

フォーム検証のために xml 検証と Validate メソッドの両方を組み合わせることは可能ですか?

私の一般的な考えでは、xml 検証には、指定されたフィールド名の長さ、それは数字ですか、それは有効な電子メールアドレスですか? がほとんど含まれるということです。Validate メソッドは指定されたフィールド名の値をチェックしますが、その値がデータベースに存在する場合はエラーになります。

もしそうなら、例を示してください。

4

1 に答える 1

1

私の知る限り、いいえ。コメントによると、はい。

Validation は、「セマンティック」ではなく、入力の正確性を検証することを目的としていると常に考えてきました。入力が間違っている場合は、戻ってください。入力に問題がない場合は、db で重複をチェックし、ユーザー ロールのパーミッションをチェックし、サービスを呼び出し、ファイル システムを調べます。

ところで、これに注意してください: をfieldexpression validator使用すると、JSP (OGNL) のようにパラメーターを使用して関数を呼び出すことができます。

それはおそらく悪い習慣でしょう (上記を読んでください) が、次のようなことができます:

<validators>
    <field name="username">
        <field-validator type="fieldexpression">
            <param name="expression">
                <![CDATA[
                    isUserAlreadyInDatabase(username)
                ]]>
            </param>
            <message>function call message here</message>
        </field-validator>
    </field>
</validators>

知っておく価値があり、場合によっては本当に役立つ可能性があるため、これを共有しました(間違いなく、あなたの質問で指摘されたものではありません)。

たとえば、これを使用して、ページの日付が現在のサブジェクトの startDate と endDate の間の間隔にあるかどうかを確認しました。startDate と endDate は Action からのインスタンス変数であり、ゲッターを介して読み取られました...

このリンクも読んでください: Can we call methods with parameters in Struts2 fieldexpression?

それが役立つことを願っています

于 2012-12-18T11:11:14.220 に答える