2013-02-28 17 views
5

Struts2とOGNLを初めて使用しており、登録ページで簡単なWebアプリケーションを作成しています。 passwordrepasswordの2つのフィールドがあり(パスワードを再入力するため)、検証フレームワークを使用して2つのパスワードが一致していることを検証したいと思います(私はJavaScriptで簡単に行うことができます)。ここまで私はこれまで何を得ているのですか?すべてのフィールドバリデーターは正常に動作しています。これは私の最初の非フィールドバリデータであり、私はそれを動作させることはできません。Struts 2 OGNL - validation.xmlの2つの文字列値を比較する

<validator type="expression"> 
    <param name="expression">${password}!=${repassword}</param> 
    <message>Passwords must match.</message> 
</validator> 

私はOGNLタグ

${password}!=${repassword} 

password!=repassword 

なしとの両方を試してみました。

答えて

3

expressionバリデーターは、フィールドレベルでないバリデータです。 Field Levelバリデータであるバリデーターfieldexpressionを使用し、OGNL式を使用して検証します。そしてそれは等しい(==)チェックでなければなりません。

<field name="password"> 
    <field-validator type="fieldexpression"> 
    <param name="expression"><![CDATA[password == repassword]]></param> 
    <message>Passwords must match.</message> 
    </field-validator> 
</field> 

expressionバリデーターはアクションエラーを追加します。 fieldexpressionバリデータはフィールドエラーを追加します。

+0

それはうまくいった!ありがとうございました。私はそれを式バリデーターとして動作させる方法を理解したいと思っています。上記の2つのリンクは、同じ機能を異なる言葉で表しているようです。 – BLam85

+0

@ BLam85:少し私の答えを更新しました。式バリデータは使用できますが、JSPのエラーを表示するには ''タグを使用する必要があります。 –

2

両方が等しいことOGNL式をブールする

%{password == repassword} 

バリチェックを試みます。

+1

期待通りに動作しませんでした。バリデータが一致しているかどうかにかかわらず、バリデータは失敗しました。 (つまり、アクションが返された入力)しかし、メッセージは表示されず、コンソールで次の警告が表示されます。 'Mar 1、2013 12:59:28 PM com.opensymphony.xwork2.util.logging.commons.CommonsLogger warn 警告: Booleanを取得しようとしたときにnullの結果が返されました。 ' – BLam85

+0

このOGNL式は、値が一致した場合にtrueと評価されます。 –

関連する問題