Springboot在实体类中提供了一下校验规则:
- @NotNull:判断是否为null,
- @NotBlank: 判断字符串是否为 null 或者是空串(去掉首尾空格)。
- @NotEmpty: 判断字符串是否 null 或者是空串。
- @Length: 判断字符的长度(最大或者最小)
- @Min: 判断数值最小值
- @Max: 判断数值最大值
- @Email: 判断邮箱是否合法
表单验证使用 JSR303 的验证注解,hibernate-validators,提供了使用MessageSource和访问静态资源(如CSS,JavaScript,图片)国际化支持我们的视图,使用ResourceHandlerRegistry,全部采用基于注解的配置。
bean类
public class Admin implements Serializable{
@NotBlank(message="姓名不能为空") //姓名的非空校验
private String name;
@NotBlank(message="密码不能为空") //姓名的非空校验
private String password;
@NotNull(message="年龄不能为空")
@Min(value=15,message="年龄最少不能小于5岁")
private int age;
@NotBlank(message="email不能为空")
@Email(message="email 输入的不是一个合格的字符串,请检车看卡")
private String email;
...
}
@Controller
@RequestMapping("/showAdmin")
public class AdaminController {
@RequestMapping("/addAdmin")
public String showPage(@ModelAttribute("kklt") Admin admin){
return "addAdmin";
}
/**
* 完成添加的操作
* @Valid:开启了多admin参数对象的数据校验
* @param admin
* @return
*
*/
@RequestMapping("/saveAdminOk")
public String saveAdminFinish(@ModelAttribute("kklt") @Valid Admin admin,BindingResult bindingResult){
System.out.println("来吧,我过来了~~"+bindingResult);
if(bindingResult.hasErrors()){
return "addAdmin";
}
return "success";
}
}
这何使用Spring表单标签, 表单验证使用 JSR303 的验证注解,hibernate-validators,提供了使用MessageSource和访问静态资源(如CSS,JavaScript,图片)国际化支持我们的视图,使用ResourceHandlerRegistry,全部采用基于注解的配置。
JSR303是一种规范,hibernate-validator是我们在这篇文章中使用的一种实现,它也提供了几个不包含在规范中自己的验证注释。
需要注意的是:
1、向页面传值的时候:可以在跳转页面的方法中注入一个 Adamin 对象。 由于 springmvc 会将该对象放入到 Model 中传递。 key 的名称会使用 该对象的驼峰式的命名规则来作为 key。参数的变量名需要与对象的名称相同。将首字母小写。
2、如果想为传递的对象更改名称,可以使用@ModelAttribute(“aa”)这表示当 前传递的对象的 key 为 aa。那么我们在页面中获取该对象的 key 也需要修改为 aa * @param admin
在html中配置:
<body align="center" width="100%" height="100%">
<form th:action="@{/showAdmin/saveAdminOk}" method="post" style="width:50%;height:150px;background:#f12345F" align ="center">
姓 名:<input type="text" name="name" /><font th:errors="${kklt.name}" color="red"></font></br></br>
密 码:<input type="password" name="password"/></br><font th:errors="${kklt.password}" color="red"></font></br></br>
年 龄:<input type="text" name="age"/><font th:errors="${kklt.age}" color="red"></font></br></br>
用户邮箱:<input type="text" name="email"/><font th:errors="${kklt.email}" color="red"></font></br></br>
<input type="submit" value="ok"/></br>
</form>
</body>