What configuration is needed to use annotations from javax.validation.constraints
like @Size
, @NotNull
, etc.? Here's my code:
import javax.validation.constraints.NotNull; import javax.validation.constraints.Size; public class Person { @NotNull private String id; @Size(max = 3) private String name; private int age; public Person(String id, String name, int age) { this.id = id; this.name = name; this.age = age; } }
When I try to use it in another class, validation doesn't work (i.e. the object is created without error):
Person P = new Person(null, "Richard3", 8229));
Why doesn't this apply constraints for id
and name
? What else do I need to do?
@NotNull validates that the annotated property value is not null. @AssertTrue validates that the annotated property value is true.
Package javax. validation. constraints Description. Contains all the Bean Validation provided constraints also called built-in constraints. These constraints do not cover all functional use cases but do represent all the fundamental blocks to express low level constraints on basic JDK types.
validation will validate the nested object for constraints with the help of javax. validation implementation provider, for example, hibernate validator. @Valid also works for collection-typed fields. In the case of collection-typed fields, each collection element will be validated.
The @Valid annotation ensures the validation of the whole object.
For JSR-303 bean validation to work in Spring, you need several things:
<mvc:annotation-driven />
validation-api-1.0.0.GA.jar
(looks like you already have that)hibernate-validator-4.1.0.Final.jar
@Valid
, and then include a BindingResult
in the method signature to capture errors. Example:
@RequestMapping("handler.do") public String myHandler(@Valid @ModelAttribute("form") SomeFormBean myForm, BindingResult result, Model model) { if(result.hasErrors()) { ...your error handling... } else { ...your non-error handling.... } }
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With