一般我们做完页面js校验,为了保证安全,还会在服务端再做一次检验。
springmvc的服务端校验封装的很简单。把页面数据封装到bo时候,同时对bo字段做了检验。
如下:
//页面form表单:<sf:errors path="username"/>显示服务端返回的错误。
<!-- 如果不写action,直接提交会提交给/add -->
<sf:form method="post" modelAttribute="user">
用户名:<sf:input path="username"/><sf:errors path="username"/><br/>
密码:<sf:password path="password"/><sf:errors path="password"/><br/> //如果提交有错,密码不会从后台带值回去。
邮箱:<sf:input path="email"/><sf:errors path="email"/><br/>
<input type="submit" value="添加用户"/>
</sf:form>
//controler @Validated User user,BindingResult br服务端校验
@RequestMapping(value="/add",method=RequestMethod.POST)
public String add(@Validated User user,BindingResult br,String adb){//一定要紧跟Validate之后写验证结果类
if(br.hasErrors()) {
//如果有错误直接跳转到add视图
return "user/add";
}
users.put(user.getUsername(), user);
return "redirect:/user/users";
}
//bo类
public class User {
// 邮箱地址
@Email(message = "邮箱的格式不正确")
private String email;
private String nickname;
// 用户密码
@Size(min = 2, max = 10, message = "密码的长度应该在2和10之间")
private String password;
// 用户名
@NotEmpty(message = "用户名不能为空")
@Size(min = 6, max = 10, message = " 用户名的长度应该在6和10之间")
private String username;
}
问题:@NotEmpty 与@NotNull区别??什么时候会用到notNull?输入空格不会错误提示,没有trim吗?