前端校验是一种防君子不防小人的校验方式,其一般是通过修改提交按钮样式属性来禁止其提交数据,因此,安全性还不够,故而,我们一般还要采用后端校验的方式。
我们可以通过在浏览器说修改其属性来获得提交数据的权限,因此,对于关键性数据,我们在程序还要后端校验,同时,还需要数据库约束

因此,我们可以使用SpringMVC提供的JSR303实现后端校验,重要数据要进行校验,防止提交非法数据

要支持JSR303校验,我们需要导入Hibernate-Valid这个包

JSR303校验_hibernate

<!-- JSR303数据校验支持  Tomcat以及以上的服务器导入即可,是其以下的,el的表达式不是新的标准,我们需要额外的给服务器中的lib包替换新的标准的el -->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>5.4.1.Final</version>
</dependency>

在实体类中的处理

JSR303校验_服务器_02


在Controller中的处理

JSR303校验_hibernate_03

JSR303校验_服务器_04

@RequestMapping(value="/adduser",method=RequestMethod.POST)
@ResponseBody
public Msg saveUser(@Valid USer user,BindingResult result){//name与bean中相同则会自动封装
if(result.hasErrors()){
//校验失败,应返还失败,在模态框中显示校验失败的信息
Map<String,Object> map=new HashMap();
List<FieldError> errors=result.getFieldErrors();
for(FieldError fieldError:errors){
System.out.println("错误的字段名:"+fieldError.getField());
System.out.println("错误信息:"+fieldError.getDefaultMessage());
map.put(fieldError.getField(), fieldError.getDefaultMessage());
}
return Msg.fail().add("errorField", map);

}else{
userservice.saveUser(user);
return Msg.success();
}

}

通过这个案例可以看到,我们通过前端的校验,在后端在进行一次,这就保证了我们的数据基本上不会出现错误。
码字不易,给个赞呗