2011-09-14 8 views
4

すべての機能でチェックすることなく、春のリクエストパラメータを検証する方法はありますか?例えば は、コントローラ内のすべてのメソッドは、要素のリストを生成し、各メソッドは、パラメータ「に」「から」受け入れると、その検証は次のとおりです。 from >=0 && to > 0 && from < to@RequestParam validation

私はBAD_REQUESTまたはいくつかの他の状態を単に返すために、スプリングを設定したいです文字列をint型のパラメータに変換できないときと同じように。

ありがとうございました。

答えて

0

ダイレクトに - しかし、クラスでそれらをラップすると、.supports(YourClass.class)validate(..)という値を持つValidatorを持つことができます。あなたが@RequestBodyを使用して、フォーム・バックオブジェクトを使用する場合は

public class Range { 
    private int from; 
    private int to; 
    //setters & getters 
} 
+0

/users?= 1&to = 20などのリクエストマッピングのパラメータをどのようにラップするかわかりません。 – Dima

+0

@Dima私の更新を参照してください – Bozho

1

、その後、あなたはあなたのフォームBeanに注釈を付けるJSR-303豆の検証を、使用することができます。詳細はhttp://static.springsource.org/spring/docs/current/spring-framework-reference/html/validation.html#validation-beanvalidationを参照してください。次に、Validatorのオブジェクトやその他のコーディングを気にする必要はありません。注釈を付けるだけです。

+0

残念ながら、それはフォームではありません。 – Dima

+0

クライアント側のHTML「

」でない場合は問題ありません。サーバー上のSpringはHTMLフォームについて何も知らない。 '@ RequestBody'を介して設定されたCommandオブジェクトに要求からの名前と値のペアを自動的にマップします。 – atrain

+0

ここには、受け入れられた答えに完全なJSR-303バリデーター実装が含まれているという質問があります。あなたのケースに合わせて修正することができます。 http://stackoverflow.com/questions/1972933/cross-field-validation-with-hibernate-validator-jsr-303 – digitaljoel