- 0
- 0
- 约3.31千字
- 约 3页
- 2026-01-08 发布于北京
- 举报
通常,SpringMVC框架接收到请求后,会先进行(1)“类型转换”,再执行“验证、校验”。这个过程关系到系统的
稳定性、健壮性、安全性,所以比较重要。
类型转换
比较特殊的“日期转换”
以日期为例,表单文本框传过来的肯定是字符串,如果要试图将它对应到实体类的Date属性,那么会存在无法转
换的可能性。比如当文本框输的是2008-08-12,则spring尝试对应到Date类型的java变量时就会报400错。如果用美
国形式的写法2008/08/12就能正确。这说明springMVC有一定的转换能力但无法囊括所有写法。
为了解决这个问题,有一个简单的办法,就是使用@DateTimeFormate注解,
importorg.springframework.format.annotation.DateTimeFormat;
publicclassUser{
privateIntegerid;
privateStringname;
privateIntegerage;
@DateTimeFormat(pattern=yyyy-MM-dd)
privateDatebirthday;
。。。
}
经过实验发现能成功了,而且后续也能被mybatis存入到数据库的datetime字段了(从java的Date类型到数据库
的时间类型,数据框架肯定已经做了对应的处理)。使用这种办法开发时,在表单文本框处,使用一些日历控件,
并把它的格式设置成我们想要的写法。
另外,实际开发中,时间常常使用纯字符串方式。因为字符串是最通用的。即inputtype=”text”、java变量用String、
数据库字段用varchar。(网络传输本就是以字符串的形式向数据库系统传递命令的)。这也比较适合mybatis逆向工程。
通用的类型转换器:converter和formatter(格式化)
虽然spring框架自己会尽力做转换,比如形式的日期2001/3/12能够被成功转换到java的Date类型,或用
@DateTimeFormate来设置,但是如果我们想支持多种填写方式,@DateTimeFormate就不够用了,而必须更灵活
的解决办法,这就是我们现在要讲的自定义转换器。
⚫BindingResult
如果spring的自身尽力所做的转换失败,而程序员又没有匹配的转换器的话,那么框架直接向浏览器报
出错误信息“requestsentbytheclientwassyntacticallyincorrect.”。如果程序员给定了匹配的转换器,那么在spring
自己无法转换时就会尝试用此自定义转换器。
如果自定义转换器执行时发生转换错误而抛出异常,那么此异常的信息就会被添加进控制器方法的参数
(如果写了该参数的话),然后方法依然能够往下继续运行,只不过目标变量的值会为;倘若没
有写参数,则仍然向外(直到浏览器)报出错误信息。
要注意的是,控制器方法的参数一定要紧跟转换时的目标对象参数,因为约定了出错信息
是放到对象紧跟的变量中,否则若不紧跟的话,一旦出现异常,直接报错到一个“出错提示
页”出来而并不会去制作对象更不会往下执行了。
(另外,注解与类型转换也有些关联,具体可以阅读这两篇文章,
)
自定义转换器一般是实现的接口或接口。编程建议用,这是因为传
输肯定是字符串和其它类型之间转换,刚好设计成这样。而支持从任何类型到任何类型的转换。
一个从转换到的类的转换器可定义如下:
packagecom.qq.converter;
importjava.text.ParseException;
importjava.text.SimpleDateFormat;
importjava.util.Date;
importorg.springframework.core.convert.converter.Converter;
publicclassStringToDateConverterimplementsConverterString,Date{
publicStringToDateCo
您可能关注的文档
- 科倍隆凯森紧凑型12mm双单螺杆微量加料器规格书.pdf
- 顺丽兴化工五金营部货款催收函.pdf
- 高考数学立体几何基础强化试题.pdf
- 机械振动与单摆周期特性探究.pdf
- 300W恒功率LED驱动器技术规格与应用概述.pdf
- 汽车城蔚山:地理与产业特征教学设计.pdf
- 意见领袖特征及其对大众传播中介作用分析.pdf
- 无形资产定义特征确认与计量要点.pdf
- 2013年6月英国高级税务考试试卷.pdf
- 税企争议沟通解决现状与谐关系构建路径.pdf
- 25-26学年政治(部编版)选择性必修第二册课件:第1单元 周清1 民法中的人身权及财产权.pptx
- 25-26学年政治(部编版)选择性必修第二册课件:1.4.1 权利保障 于法有据.pptx
- 2025北京丰台区高二(上)期中地理(A卷)含答案.docx
- 2025北京三帆中学初三(上)开学考英语试题含答案.docx
- 2025北京一零一中初三9月月考语文试题含答案.docx
- 2025北京海淀区初三(上)期中道法试题含答案.docx
- 2025北京丰台区高一(上)期中政治(A卷)含答案.docx
- 25-26学年政治统编版必修4课件:3.3 唯物辩证法的实质与核心.pptx
- 25-26学年政治统编版必修4课件:7.2 正确认识中华传统文化.pptx
- 湖北省部分高中2026届高三上学期二模联考 历史试卷.docx
最近下载
- 青岛版五四制一年级上册数学期末试题.pdf VIP
- 城市公园管理与维护规范.docx VIP
- 精品解析:2022-2023学年山东省青岛市城阳区青岛版四年级上册期末质量抽测数学试卷(原卷版).docx VIP
- 浙江省杭州市拱墅区2024-2025学年四年级上学期期末考试数学试题.docx VIP
- 5《和大家在一起》第二课时 (教学设计) 一年级道德与法治下册(统编版2025).pdf VIP
- 农业社会化服务体系.ppt VIP
- 5《和大家在一起》第一课时 (教学设计) 一年级道德与法治下册(统编版2025).docx VIP
- 2023年四川高级政工师题库 .pdf VIP
- 中国地理《中国的河流-长江》.ppt VIP
- 上海市闵行区2024-2025学年高一上学期期末考试生物试卷含答案.docx VIP
原创力文档

文档评论(0)