SpringMVC 自定义类型转换
类型转换可以将请求参数转换为指定的类型、指定的格式(数据的格式化),然后传给业务方法的参数。
Spring MVC内置了常用的类型转换器。如果内置的类型转换器满足不了需求,可以使用自定义的类型转换。
自定义类型转换有2种方式:
- 使用Converter
- 使用Formatter
Converter方式
(1)新建包com.chy.converter,包下新建类DateConverter,作为自定义的类型转换器
// 需要实现Converter接口,<原始类型,目标类型>
public class DateConverter implements Converter<String, Date> { //参数是请求参数中的原始数据,返回值是转换好的数据(目标类型)
@Override
public Date convert(String source) {
// 经过一些操作,将原始类型的数据,转换为目标类型的数据并返回
// ......
} }
(2)在spring mvc的配置中添加:
<!--配置ConversionService-->
<bean name="conversionService" class="org.springframework.context.support.ConversionServiceFactoryBean">
<!--使用集合传入自定义的converter-->
<property name="converters">
<set>
<!--一个bean对应一个类型转换器-->
<bean class="com.chy.com.chy.converter.DateConverter" />
</set>
</property>
</bean> <!--指定要使用的ConversionService-->
<mvc:annotation-driven conversion-service="conversionService" />
Formatter方式
(1)新建包com.chy.converter,包下新建类DateFormatter
// 需要实现Converter接口,<目标类型>
public class DateConverter implements Formatter<Date> {
//parse()是转换,将原始类型转换为目标类型,参数是原始类型(String)
@Override
public Date parse(String source, Locale locale) throws ParseException { } //print()是格式化输出,将目标类型转换为指定格式的字符串,参数是parse()转换好的目标类型
@Override
public String print(Date date, Locale locale) { }
}
Formatter的类型转换、数据格式化是分开的,写在2个方法里。
(2)在spring mvc的配置中添加:
<!--配置ConversionService-->
<bean name="conversionService" class="org.springframework.format.support.FormattingConversionServiceFactoryBean">
<!--使用集合传入自定义的formatter-->
<property name="formatters">
<set>
<!--一个bean对应一个formatter-->
<bean class="com.chy.com.chy.converter.DateConverter" />
</set>
</property>
</bean> <!--指定要使用的ConversionService-->
<mvc:annotation-driven conversion-service="conversionService" />
踩过的坑:
xmlns:mvc="http://www.springframework.org/schema/cache"
IDEA自动导入的约束不对,将cache改为mvc,xsi中对应的部分也要改。
SpringMVC 自定义类型转换的更多相关文章
- SSM框架之SpringMVC(2)参数绑定及自定义类型转换
SpringMVC(2)参数绑定及自定义类型转换 1.请求参数的绑定 1.1. 请求参数的绑定说明 1.1.1.绑定机制 表单提交的数据都是k=v格式的 username=haha&passw ...
- 05 SpringMVC:02.参数绑定及自定义类型转换&&04.SpringMVC返回值类型及响应数据类型&&05.文件上传&&06.异常处理及拦截器
springMVC共三天 第一天: 01.SpringMVC概述及入门案例 02.参数绑定及自定义类型转换 03.SpringMVC常用注解 第二天: 04.SpringMVC返回值类型及响应数据类型 ...
- springmvc的类型转换
一.springmvc的类型转换 (一)默认情况下,springmvc内置的类型转换器只能 将"yyyy/MM/dd"类型的字符串转换为Date类型的日期 情境一: 而现在我们无 ...
- 【.NET深呼吸】基础:自定义类型转换
照例,老周在开始吹牛之前,先讲讲小故事,这是朋友提出的建议,老TMD写技术有什么了不起的,人人都会写.后来老周想想,也确实,代码谁不会写,能写到有品位有感悟,就不容易做到.于是,老周接受了该朋友的建议 ...
- AutoMapper搬运工之自定义类型转换
前言 最近还挺忙,还有点累,一直都没更新了,实在是懒呀.正题之前先说点别的,最近公司要扩张了,需要大量开发,领导说推荐有钱可以拿,如此好机会,我就趁机做个广告.ShippingRen.com招募.NE ...
- 不可或缺 Windows Native (24) - C++: 运算符重载, 自定义类型转换
[源码下载] 不可或缺 Windows Native (24) - C++: 运算符重载, 自定义类型转换 作者:webabcd 介绍不可或缺 Windows Native 之 C++ 运算符重载 自 ...
- Struts2自定义类型转换,和处理类型转换错误
Struts2自定义类型转换: 从前台接受到的类型全部是字符串,Struts2自带的一些基本类型转换有时不能满足我们的特别需要,如:日期字符串输入格式,还有一些自定义的类,直接传到后台,我们需要一些自 ...
- spring参数类型异常输出(二), SpringMvc参数类型转换错误输出(二)
spring参数类型异常输出(二), SpringMvc参数类型转换错误输出(二) >>>>>>>>>>>>>>&g ...
- spring参数类型异常输出,SpringMvc参数类型转换错误输出
spring参数类型异常输出, SpringMvc参数类型转换错误输出 >>>>>>>>>>>>>>>> ...
随机推荐
- The Preliminary Contest for ICPC Asia Xuzhou 2019 B. so easy (unordered_map+并查集)
这题单用map过不了,太慢了,所以改用unordered_map,对于前面删除的点,把它的父亲改成,后面一位数的父亲,初始化的时候,map里是零,说明它的父亲就是它本身,最后输出答案的时候,输出每一位 ...
- python 的集合
set 的特点: 把不同的元素组合在一起,元素值必须是可哈希不可变的 set 的创建 s = set ('alex li') print(s) 表现形式:去重 {'e', 'i', ' ', 'l' ...
- Scrapy模拟登陆
1. 为什么需要模拟登陆? #获取cookie,能够爬取登陆后的页面 2. 回顾: requests是如何模拟登陆的? #1.直接携带cookies请求页面 #2.找接口发送post请求存储cooki ...
- go.php
<?php $t_url=$_GET['url']; if(!empty($t_url)) { preg_match('/(http|https):\/\//',$t_url,$matches) ...
- sort的使用
sort主要是用来排序的,可以用自定义的函数进行比较,也可以用系统的4中函数进行比较,即less(),greater(),less_equal(),greater_equal().但是我试了一下,发现 ...
- Python基础(一) Python3环境搭建
转载清注明原文地址,谢谢. OS:Windows 10 第一步,从Python官方下载安装包 Windows端下载地址:https://www.python.org/downloads/windows ...
- springmvc基于java配置的实现
该案例的github地址:https://github.com/zhouyanger/demo/tree/master/springmvc-noxml-demo 1.介绍 之前搭建SpringMvc项 ...
- 探讨 Git 代码托管平台的若干问题
关于 Git 版本控制软件种类繁多,维基百科收录的最早的版本控制系统是 1972 年贝尔实验室开发的 Source Code Control System.1986 年 Concurrent Vers ...
- SVM的优缺点
优点 可用于线性/非线性分类,也可以用于回归,泛化错误率低,也就是说具有良好的学习能力,且学到的结果具有很好的推广性. 可以解决小样本情况下的机器学习问题,可以解决高维问题,可以避免神经网络结构选择和 ...
- python 环境迁移之requirements.txt (window环境)
一.背景 1.有时候你本地用python编写代码,然后本地也安装了很多的库,那么你要迁移到服务器上,那么该怎么快速弄环境库呢? #第二,三步就可以解决. 2.有时候你本地用pyth ...