2017-05-10 8 views
1

オブジェクトをフォームにバインドし、検証コントローラメソッドでオブジェクトの表記を@Validとすることで、オブジェクトのすべてのフィールドを検証するのは簡単です。Java Spring - 個々のオブジェクトフィールドの妥当性確認

私はユーザーがいくつかのフィールドを更新できるようにする更新画面を持っているとします。手作業による検証を避けるために遠く離れていますか?

ありがとうございます!

+1

他のすべてのフィールドに対して検証を実行するとどんな害がありますか?誰が悪意のあるユーザーがサーバーに移行する前に悪意のあるユーザーを変更しないのですか? – Makoto

+0

私はあなたが正しいと思います!私は頭の中にいくつかの想像上の有害要因を持っていました。ありがとう! – user2892437

答えて

3

検証ルールのサブセットに対する検証を持っているために、あなたはこの

に似て、あなたの豆やフォームモデルのためのグループのセットを定義する必要があります @Validated

で検証グループのバネ機能を使用することができます

public class Form { 

    public interface Group1 { /*empty interface*/ }; 

    public interface Group2 { /*empty interface*/ }; 

    @NotEmpty(groups = { Group1.class }) // associate constraints 
    private String field1;    // to a validation group 

    @NotEmpty(groups = { Group2.class }) 
    private String field2; 

} 

そして、あなたのコントローラでは、あなたがこの

@Controller 
public class FormController { 

    @RequestMapping(value = "/validate1", method = RequestMethod.POST) 
    public String updateGroup1(@Validated(Form.Group1.class) Form form, Errors errors) { 
    if (errors.hasErrors()) { 
     // return to the same view 
    } 
    // return success 
    } 

} 

のようなアノテーションを使用することができますあなたはそれのためにここに良い例を見つけることができます

https://narmo7.wordpress.com/2014/04/26/how-to-set-up-validation-group-in-springmvc/