接CRUD博客
1.数据日期格式化
现在添加一个员工:
报错,如果将birth格式修改一下则添加成功。
那么如何将日期数据格式化??
使用注解@DateTimeFormat(pattern = "yyyy-MM-dd")
规定格式 ,规定了这种格式之后就可以以这种格式添加数据了。
@Data
@NoArgsConstructor
@AllArgsConstructor
public class Employee {
private Integer id;
private String lastName;
private String email;
private Integer gender;
private Department department;
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date birth;
}
2.数据校验
SpringMvc可以使用JSR303进行数据校验
如何进行后端校验:
- 导入校验框架的 jar包
classmate-0.8.0.jar
jboss-logging-3.1.1.GA.jar
validation-api-1.1.0.CR1.jar
hibernate-validator-5.0.0.CR2.jar
hibernate-validator-annotation-processor-5.0.0.CR2.jar - 给JavaBean的属性添加校验注解
public class Employee {
private Integer id;
@NotEmpty//不能为空
@Length(min=6,max=18)//长度必须为6--8
private String lastName;
@Email//必须是邮箱
private String email;
private Integer gender;
private Department department;
@DateTimeFormat(pattern ="yyyy-MM-dd")
@Past//必须是一个过去的时间
private Date birth;
}
- 在SpringMvc封装对象的时候,告诉SpringMvc这个JavaBean需要校验
public String addEmp(@Valid Employee employee)
- 如何直角校验成功还是失败
给需要校验的JavaBean后面紧跟一个BindingResult,这个BindingResult就是封住了前一个Bean的校验结构
public String addEmp(@Valid Employee employee, BindingResult result){
- 判断是否有校验错误:
@RequestMapping(value="/emp",method = RequestMethod.POST)
public String addEmp(@Valid Employee employee, BindingResult result){
System.out.println("要添加的员工:"+employee);
//判断是否有校验错误
boolean hasErrors = result.hasErrors();
if(hasErrors){
System.out.println("有校验错误");
return "add";
}else{
employeeDao.save(employee);
//返回列表页面:重定向到查询所有请求
return "redirect:/emps";
数据校验还可以显示错误:
<form:form action="${ctp}/emp" modelAttribute="employee" method="post">
lastname:<form:input path="lastName"/><form:errors path="lastName"/>
<br>
email:<form:input path="email"/><form:errors path="email"/>
<br>
gender:<br>
男:<form:radiobutton path="gender" value="1"/><br>
女:<form:radiobutton path="gender" value="0"/><br>
birth:<form:input path="birth"/><form:errors path="birth"/>
dept:
<form:select path="department.id"
items="${depts}"
itemLabel="departmentName"
itemValue="id">
</form:select>
<br>
<input type="submit" value="保存"/>
</form:form>