springmvc数据的格式化及数据校验
2017-07-23 09:06
295 查看
一、数据的格式化
① 配置<mvc:annotation-driven></mvc:annotation-driven>
② 直接在要格式化的属性上加上格式化(这个格式是匹配你输入的数据的格式)
@DateTimeFormat(pattern="yyyy-MM-dd")
privateDate birth;
@NumberFormat(pattern="#,###,###.#") //用#表示数值
privateFloat salary;
格式化出错了怎么办?-----在目标方法中加上BindingResult参数,在调用其方法看其错误。
BindingResult父类是errors,所以BindingResult和errors都可以用于存储错误信息。
@RequestMapping(value="/emp", method=RequestMethod.POST)
public String save(@Valid Employee employee, Errors result, Map<String, Object> map){
if(result.getErrorCount() > 0){
System.out.println("出错了!");
for(FieldError error:result.getFieldErrors()){
System.out.println(error.getField() + ":" + error.getDefaultMessage());
}
//若验证出错, 则转向定制的页面
map.put("departments", departmentDao.getDepartments());
return "input";
二、数据校验
1). 如何校验 ? 注解 ?
① 使用 JSR 303 验证标准
② 加入 hibernate validator 验证框架的 jar 包
③ 在 SpringMVC 配置文件中添加 <mvc:annotation-driven/>
④ 需要在 bean 的属性上添加对应的注解(有很多注解,如@Email:必须是邮箱格式)
如在Employee类中的属性,
@NotEmpty
private String lastName;
⑤. 在目标方法 bean 类型的前面添加 @Valid注解
public String save(@Valid
Employee employee, Errors result, Map<String, Object> map){
⑥ 但是运行的时候回报错,是jar包的错误
解决:将hibernatevalidator中的三个跟el相关的jar包复制到tomcat中,同时删除tomcat中的就可以了。其中,Errorsresult可以改为BindingResultresult
2). 验证出错转向到哪一个页面 ?
注意: 需校验的 Bean 对象和其绑定结果对象或错误对象时成对出现的,它们之间不允许声明其他的入参。
public String handle91(@Valid User user, BingingResult userBindingResult, String sessionId, ModeluMap, mm, @Valid Dept dept, Errors deptErrors){
user和其绑定结果的对象及dept的其绑定结果的对象各自中间不能声明其他的入参。
3). 错误消息 ? 如何显示, 如何把错误消息进行国际化
显示:<form:errors path="*"></form:errors> //显示所有的错误信息
或者可以在每个字段后面显示其错误,不过path要和这个字段名相同。
国际化:
① springmvc.xml配置
② 在i18n.properties中
编写的格式是:校验注解名.请求域中对象名.属性名,如:
NotEmpty.employee.lastName=^^LastName\u4E0D\u80FD\u4E3A\u7A7A.
① 配置<mvc:annotation-driven></mvc:annotation-driven>
② 直接在要格式化的属性上加上格式化(这个格式是匹配你输入的数据的格式)
@DateTimeFormat(pattern="yyyy-MM-dd")
privateDate birth;
@NumberFormat(pattern="#,###,###.#") //用#表示数值
privateFloat salary;
格式化出错了怎么办?-----在目标方法中加上BindingResult参数,在调用其方法看其错误。
BindingResult父类是errors,所以BindingResult和errors都可以用于存储错误信息。
@RequestMapping(value="/emp", method=RequestMethod.POST)
public String save(@Valid Employee employee, Errors result, Map<String, Object> map){
if(result.getErrorCount() > 0){
System.out.println("出错了!");
for(FieldError error:result.getFieldErrors()){
System.out.println(error.getField() + ":" + error.getDefaultMessage());
}
//若验证出错, 则转向定制的页面
map.put("departments", departmentDao.getDepartments());
return "input";
二、数据校验
1). 如何校验 ? 注解 ?
① 使用 JSR 303 验证标准
② 加入 hibernate validator 验证框架的 jar 包
③ 在 SpringMVC 配置文件中添加 <mvc:annotation-driven/>
④ 需要在 bean 的属性上添加对应的注解(有很多注解,如@Email:必须是邮箱格式)
如在Employee类中的属性,
@NotEmpty
private String lastName;
⑤. 在目标方法 bean 类型的前面添加 @Valid注解
public String save(@Valid
Employee employee, Errors result, Map<String, Object> map){
⑥ 但是运行的时候回报错,是jar包的错误
解决:将hibernatevalidator中的三个跟el相关的jar包复制到tomcat中,同时删除tomcat中的就可以了。其中,Errorsresult可以改为BindingResultresult
2). 验证出错转向到哪一个页面 ?
注意: 需校验的 Bean 对象和其绑定结果对象或错误对象时成对出现的,它们之间不允许声明其他的入参。
public String handle91(@Valid User user, BingingResult userBindingResult, String sessionId, ModeluMap, mm, @Valid Dept dept, Errors deptErrors){
user和其绑定结果的对象及dept的其绑定结果的对象各自中间不能声明其他的入参。
3). 错误消息 ? 如何显示, 如何把错误消息进行国际化
显示:<form:errors path="*"></form:errors> //显示所有的错误信息
或者可以在每个字段后面显示其错误,不过path要和这个字段名相同。
国际化:
① springmvc.xml配置
② 在i18n.properties中
编写的格式是:校验注解名.请求域中对象名.属性名,如:
NotEmpty.employee.lastName=^^LastName\u4E0D\u80FD\u4E3A\u7A7A.
相关文章推荐
- SpringMVC 数据的格式化、JSR 303数据校验和国际化
- SpringMVC-8 数据类型转换、数据格式化与数据校验
- springmvc笔记-6-数据转换,格式化,校验
- springmvc学习笔记(25)——数据格式化与数据校验
- SpringMVC——类型转换和格式化、数据校验、客户端显示错误消息
- springmvc_3_数据转换 & 数据格式化 & 数据校验
- SpringMVC 数据的格式化、JSR 303数据校验和国际化
- 【SpringMVC】SpringMVC系列12之数据类型转换、格式化、校验
- 5、springMVC的校验和数据回显
- 5、springMVC的校验和数据回显
- Spring MVC学习(七)-------SpringMVC数据格式化
- SpringMVC 集成JSR303数据校验
- 第七章 注解式控制器的数据验证、类型转换及格式化--SpringMVC数据类型转换
- 三.SpringMVC 数据校验
- 【SpringMVC学习06】SpringMVC中的数据校验
- SpringMVC中的 JSR 303 数据校验框架说明
- SpringMVC数据校验
- SpringMVC之数据的正确性和合法性校验
- SpringMVC实现页面和java模型的数据交互以及文件上传下载和数据校验
- springmvc(四) springmvc的数据校验的实现