The Entity:
@Entity public class BlogPost { @Id private Long id; //always enforce this constraint: @NotBlank private String title; // only enforce this constraint if our validation group is "Publish" @NotBlank( groups = { Publish.class } ) private String body; ...getters and setters... } //the "Publish" validation group: public interface Publish extends Default {};
The HTML form (Spring MVC):
... <form:form> <form:label path="title">Title <form:errors path="title"/></form:label> <form:input path="title"/> <form:label path="body">Body <form:errors path="body"/></form:label> <form:textarea path="body"></form:textarea> <button type="submit" name="action" value="save-draft">Save Draft</button> <button type="submit" name="action" value="publish">Publish</button> </form:form> ...
The Spring MVC Controller:
@Controller @RequestMapping("/blog-posts") public class BlogPostController { /* this method is called if we hit the Save Draft button. It validates the blogPost with the Default group (ignoring the constraint on Body) */ @RequestMapping( method = RequestMethod.POST, params="action=save-draft" ) String saveDraft( @Validated BlogPost blogPost, BindingResult result) { ... } /* this method is called if we hit the Publish button. It validates the blogPost with the Publish group, checking the @NotBlank constraint on Body */ @RequestMapping( method = RequestMethod.POST, params="action=publish" ) String publish( @Validated({Publish.class}) BlogPost blogPost, BindingResult result)) { ... } }
1 comment:
Great Article
Java Online Course | Java Training in Chennai | Hibernate Training in Chennai
Post a Comment