Spring MVC Form - Exceptions от POJO

+10 гласа
159 прегледа
попитан 2016 юли 29 от Radoslav (220 точки)

Здравейте, използвам Spring MVC , от форма искам да създам обект и да го дам на POST метода в контролера. В POJO-то сетара валидира когато е по малко от 3 символа съответно не се създава обект и от там грешка в POST метода в контролера. Идеята е когато се цъкне submit, ако не е попълнена коректа информация да се визуализира същата форма с подходящо съобщение. Махнах валидацията от POJO-от и валидирам в контролера, но не ми се струва правилно да е така . Та въпроса ми е има ли начин Exceptions от POJO-то да се хване и все пак да влезна в POST метода въпреки ,че му е подадем в @ModelAttribute да иска обект, и дали ми е правилен подхода за валидация, че от скоро се занимавам с това и са ме учили да си валидирам сетарите  :).

1 отговор

0 гласа
отговорени 2016 август 24 от RoYaL (400 точки)
Здравей,

Валидирай си модела (надявам се не ползваш същия модел, който и в базата) с анотации, например @NotNull, @Size и т.н. Като приемаш модела в метода на контролерай, анотирай че искаш да бъде валидиран с анотацията @Valid и започни да приемаш и втори обект в контролера, а именно BindingResult. Ако някое от анотираните правила в модела бъде нарушено, методът hasErrors() от BindingResult ще върне true и ще можеш да направиш съответното действие, което искаш - да рендираш на ново формата със съответните съобщения. Можеш да си напишеш твой валидатор, така че съобщенията в errors да са такива каквито ти искаш или правилата да са каквито ти решиш, но би трябвало да ти свърши работа и вграденията начин за валидиране.

Поздрави,

Иван
...