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