【SSM】SSM之SpringMVC框架:数据类型转换器

SpringMVC默认的数据类型转换器

控制器中与请求相匹配的方法可以根据参数名获得请求中name与之相同的数据,并且能够自动将其类型进行转换,这主要得益于SpringMVC默认的数据类型转换器,这些默认的数据类型转换器已经满足了大多数需求:

java.lang.Boolean -> java.lang.String : org.springframework.core.convert.support.ObjectToStringConverter@1b27f3d
java.lang.Character -> java.lang.Number : org.springframework.core.convert.support.CharacterToNumberFactory@1d20ea2
java.lang.Character -> java.lang.String : org.springframework.core.convert.support.ObjectToStringConverter@65e5d2
java.lang.Enum -> java.lang.Integer : org.springframework.core.convert.support.EnumToIntegerConverter@1ff743e
java.lang.Enum -> java.lang.String : org.springframework.core.convert.support.EnumToStringConverter@1483d7d
java.lang.Integer -> java.lang.Enum : org.springframework.core.convert.support.IntegerToEnumConverterFactory@176a4ba
java.lang.Number -> java.lang.Character : org.springframework.core.convert.support.NumberToCharacterConverter@bb698e
java.lang.Number -> java.lang.Number : org.springframework.core.convert.support.NumberToNumberConverterFactory@49de05
java.lang.Number -> java.lang.String : org.springframework.core.convert.support.ObjectToStringConverter@631da
java.lang.String -> java.lang.Boolean : org.springframework.core.convert.support.StringToBooleanConverter@b0428c
java.lang.String -> java.lang.Character : org.springframework.core.convert.support.StringToCharacterConverter@6bda1
java.lang.String -> java.lang.Enum : org.springframework.core.convert.support.StringToEnumConverterFactory@ee9b9c
java.lang.String -> java.lang.Number : org.springframework.core.convert.support.StringToNumberConverterFactory@8e88d8
java.lang.String -> java.nio.charset.Charset : org.springframework.core.convert.support.StringToCharsetConverter@1dd6f83
java.lang.String -> java.util.Currency : org.springframework.core.convert.support.StringToCurrencyConverter@1e1a986
java.lang.String -> java.util.Locale : org.springframework.core.convert.support.StringToLocaleConverter@14329a6
java.lang.String -> java.util.Properties : org.springframework.core.convert.support.StringToPropertiesConverter@229207
java.lang.String -> java.util.TimeZone : org.springframework.core.convert.support.StringToTimeZoneConverter@70e46b
java.lang.String -> java.util.UUID : org.springframework.core.convert.support.StringToUUIDConverter@5a2229
java.nio.charset.Charset -> java.lang.String : org.springframework.core.convert.support.ObjectToStringConverter@1dbbd42
java.time.ZoneId -> java.util.TimeZone : org.springframework.core.convert.support.ZoneIdToTimeZoneConverter@a7bb7f
java.time.ZonedDateTime -> java.util.Calendar : org.springframework.core.convert.support.ZonedDateTimeToCalendarConverter@b185c8
java.util.Currency -> java.lang.String : org.springframework.core.convert.support.ObjectToStringConverter@2b49b6
java.util.Locale -> java.lang.String : org.springframework.core.convert.support.ObjectToStringConverter@15a5aa6
java.util.Properties -> java.lang.String : org.springframework.core.convert.support.PropertiesToStringConverter@d516ac
java.util.UUID -> java.lang.String : org.springframework.core.convert.support.ObjectToStringConverter@cb9ad

但正所谓金无足赤,SpringMVC也有考虑不到的类型转换。好在SpringMVC为开发者提供了添加自定义转换器的方法,这样一来,开发者就可以按照既定的方法添加所需要的类型转换器。至于如何添加自定义类型转换器,我们就来看一看,这里以字符串转日期类型的转换器为例。

如何添加自定义数据类型转换器
一、创建是添加的必要基础:

1、数据类型转换器归根结底是一个类,所以我们要创建一个类;
2、该类要成为类型转换器,那么必然要实现转换器接口Converter;
3、转换器必然是两种数据的转换,这点在Converter接口的泛型中得以体现;
4、转换的方法必然是转换器接口所规定的,因此要实现它;
5、转换器必定要返回转换后的数据,因此一定要return;
6、转换器必定是要交给Spring调用和管理的,采用注解+扫描或是配置bean都行。

package cn.jingpengchong.utils;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

import org.springframework.core.convert.converter.Converter;
import org.springframework.stereotype.Component;

@Component("dataConverter")
public class DataConverter implements Converter<String, Date> {

	@Override
	public Date convert(String birth) {
		if(birth != null && !"".equals(birth)) {
			SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
			try {
				return dateFormat.parse(birth);
			} catch (ParseException e) {
				e.printStackTrace();
			}
		}
		return null;
	}
}
二、添加时创建的价值实现:

1、因为转换器添加了@Component注解,所以要保证其能被扫描到;
2、要使自定义数据类型转换器被添加进转换服务层,需配置ConversionServiceFactoryBean;
3、该自定义的数据类型转换器要保证能够被处理器适配器知晓,因此要将其配置进注解驱动。

<context:component-scan base-package="cn.jingpengchong.controller"/>
<bean id="conversionService" class="org.springframework.format.support.ConversionServiceFactoryBean">
	<property name="converters">
		<set>
			<ref bean="dataConverter"/>
		</set>
	</property>
</bean>
<mvc:annotation-driven conversion-service="conversionService"/>
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SSM框架中,SpringMVC的作用主要有以下几个方面: 1. 实现MVC架构:SpringMVC是一个MVC框架,它可以帮助我们将Web应用程序按照MVC架构进行组织,将模型、视图、控制器进行分离,从而实现组件之间的解耦。在SSM框架中,SpringMVC的作用就是实现MVC架构,它通过DispatcherServlet作为前端控制器,将请求分发给对应的Controller进行处理,然后将处理结果返回给客户端。 2. 处理Web请求和响应:SpringMVC可以帮助我们处理Web请求和响应,例如对请求参数进行解析、对响应进行封装等。在SSM框架中,SpringMVC的作用就是处理Web请求和响应,它可以帮助我们快速地开发Web应用程序。 3. 提供视图解析器:SpringMVC可以帮助我们解析视图,将模型数据渲染到页面上。在SSM框架中,SpringMVC的作用就是提供视图解析器,将控制器返回的模型数据渲染到对应的视图上。 4. 提供数据验证和转换:SpringMVC可以帮助我们对请求参数进行数据验证和转换,例如将字符串类型的参数转换为数字类型、对参数进行非空校验等。在SSM框架中,SpringMVC的作用就是提供数据验证和转换功能,帮助我们更加方便地处理Web请求。 综上所述,SpringMVCSSM框架中扮演着很重要的角色,它可以帮助我们快速地开发Web应用程序,并且将模型、视图、控制器进行分离,实现组件之间的解耦。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值