springmvc学习笔记(25)——数据格式化与数据校验
来源:互联网 发布:网络新词汇2017 编辑:程序博客网 时间:2024/05/23 16:55
遇到的问题
我们先来看个例子
写一个Data类做测试,有两个属性,Date和float类型
package com.zj.model;import java.util.Date;public class Data { private Date date; private float salary; public Date getDate() { return date; } public void setDate(Date date) { this.date = date; } public float getSalary() { return salary; } public void setSalary(float salary) { this.salary = salary; } @Override public String toString() { return "Data [date=" + date + ", salary=" + salary + "]"; }}
写一个目标方法
@RequestMapping("/testDataFormat") public void testDataFormat(Data data){ System.out.println(data); }
界面
<form action="testDataFormat" method="post"> <input type="text" name="date" /> <input type="text" name="salary" /> <input type="submit" value="submit" /></form>
点击提交,你会得到下面这个结果
这就是数据的格式转换的问题。
如何解决
springmvc配置文件要有mvc:annotation-driven
<mvc:annotation-driven />
给属性加上注解
package com.zj.model;import java.util.Date;import org.springframework.format.annotation.DateTimeFormat;import org.springframework.format.annotation.NumberFormat;public class Data { @DateTimeFormat(pattern="yyyy-MM-dd") private Date date; //#号代表一个数字 1,123,345.9 @NumberFormat(pattern="#,###,###.#") private float salary; public Date getDate() { return date; } public void setDate(Date date) { this.date = date; } public float getSalary() { return salary; } public void setSalary(float salary) { this.salary = salary; } @Override public String toString() { return "Data [date=" + date + ", salary=" + salary + "]"; }}
加上格式化的注解之后,就可以正常的解析前端传来的数据了
提交数据
控制台打印结果
类型转换失败怎么办
有时候,从前端传来的数据不是我们想要的格式,转换失败怎么办
我可以在目标方法中传入一个参数BindingResult
@RequestMapping("/testDataFormat") public void testDataFormat(Data data,BindingResult result){ //发生错误 if(result.getErrorCount() > 0){ System.out.println("出错了,请注意!"); //循环打印所有的错误信息 for(FieldError error:result.getFieldErrors()){ //打印错误 System.out.println(error.getField()+":"+error.getDefaultMessage()); } } System.out.println(data); }
如果你了解数据绑定的流程,那么就应该知道BindingResult。当数据绑定失败的时候,错误结果就会被放入BindingResult中。
模拟错误场景
输入错误信息
点击提交,控制台打印出错误信息
出错了,请注意!date:Failed to convert property value of type 'java.lang.String' to required type 'java.util.Date' for property 'date'; nested exception is org.springframework.core.convert.ConversionFailedException: Failed to convert from type java.lang.String to type @org.springframework.format.annotation.DateTimeFormat java.util.Date for value 'we'; nested exception is java.lang.IllegalArgumentException: Unable to parse 'we'salary:Failed to convert property value of type 'java.lang.String' to required type 'float' for property 'salary'; nested exception is java.lang.NumberFormatException: For input string: "fdf"Data [date=null, salary=0.0]
数据校验
对于表单提交过来的页面,我们通常都要进行校验。
比如email格式是否符合要求,id是否为空,生日是否是今天之前等在我所看的教学视频中,使用了JSR303进行验证,它需要一些jar包,个人感觉去找这些jar包是比较麻烦的,而且有一个jar还需要替换掉tomcat服务器里面的jar包。所以我个人不太想用的JSR303进行验证。
有兴趣的朋友可以去看 尚硅谷的springmvc教学视频
0 0
- springmvc学习笔记(25)——数据格式化与数据校验
- springmvc笔记-6-数据转换,格式化,校验
- springmvc数据的格式化及数据校验
- SpringMVC--数据转换、格式化和校验
- SpringMVC学习(七)-JSR303数据校验
- springmvc知识四------数据转换&数据格式化&数据校验
- Springmvc学习(05)-数据校验
- SpringMVC 学习笔记(六) 数据绑定和JSR校验
- SpringMVC 数据的格式化、JSR 303数据校验和国际化
- 【SpringMVC学习06】SpringMVC中的数据校验
- springmvc 数据转换与格式化
- SpringMVC 数据校验(JSR303)
- springmvc——数据格式化Formatter
- Struts2学习笔记——SimpleDataValidation(简单数据校验)
- Struts2学习笔记(十)——数据校验
- 学习SpringMVC(十八)之JSR303数据校验
- springmvc学习笔记(二)路径配置与数据传递
- Spring MVC—数据绑定机制,数据转换,数据格式化配置,数据校验
- openwrt 将自己的应用编入rom中
- 字符交替
- 理解Objective-C的ARC
- 【水晶报表内功心法】--PUSH模式样板招式
- 解密ATS 4.2.3的缓存状态密码
- springmvc学习笔记(25)——数据格式化与数据校验
- [Python开发] python使用http通信
- 趣谈递归算法
- Netty初探-I/O对比
- Step into MongoDB - 11 - MapReduce
- Design and Implementation of the Sun Network File System
- 6类垃圾简历,有你吗?
- 安卓PagerAdapter在广告切换中的应用
- 服务端开发笔记一:服务器架构探索