SpringMVC的errors标签是对应于SpringMVC的Errors对象的,他的作用就是显示Errors对象中包含的错误信息。如果Errors不为null,则会渲染一个HTML的span元素,用来显示错误信息。
属性 | 描述 |
cssClass | 定义要应用到被渲染的errors元素CSS类 |
cssStyle | 定义要应用到被渲染的errors元素的CSS样式 |
htmlEscape | 是否对HTML进行转义 |
delimiter | 定义两个input元素之间的分隔符,默认没有分隔符 |
path | 要绑定的属性路径 |
利用errors标签来显示Errors时,是通过errors标签的path属性绑定一个错误信息实现的,可以通过path属性来显示两种类型的错误信息。
(1)所有的错误信息,这个时候path的值应该设置为*
(2)当前对象的某一个属性的错误信息,这个时候path的值应为所需显示的属性的名称。
示例:errors标签的使用
1.模型
public class User implements Serializable { private String username; private String sex; private String age; public User() { super(); } …
2.验证器
public class UserValidator implements Validator { @Override public boolean supports(Class<?> clazz) { return User.class.equals(clazz); } @Override public void validate(Object object,Errors errors) { //验证username,sex,age是否为null ValidationUtils.rejectIfEmpty(errors, "username", null,"用户名不能为空"); ValidationUtils.rejectIfEmpty(errors, "sex", null,"性别不能为空"); ValidationUtils.rejectIfEmpty(errors, "age", null,"年龄不能为空"); }
3.控制器
@Controller public class UserController { @RequestMapping("/registerForm") public String registerForm( Model model ) { User user = new User(); model.addAttribute("user", user); return "registerForm"; } @InitBinder public void initBinder(DataBinder binder) { //设置验证的类为UserValidator binder.setValidator(new UserValidator()); } @PostMapping(value="/register") public String register( @Validated User user, Errors errors ) { //如果Errors对象有Field错误,则重新跳回注册页面,否则正常提交 if(errors.hasFieldErrors()) return "registerForm"; return "submit"; } }
4.视图
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> <form:form modelAttribute="user" method="post" action="register"> 姓名<form:input path="username" /> <h4><form:errors path="username" /></h4> <br> 性别<form:input path="sex" /> <h4><form:errors path="sex" /></h4> <br> 年龄<form:input path="age" /> <h4><form:errors path="age" /></h4> <input type="submit" /> </form:form>