您当前的位置: 首页 > 慢生活 > 程序人生 网站首页程序人生
21-SpringMVC的请求-获得请求参数-自定义类型转换器(使用转换器将请求参数的日期字符串转换为日期对象)
发布时间:2025-01-02 14:51:58编辑:雪饮阅读()
-
在前番的学习我们了解到SpringMVC可以自动将get请求里面的参数名与控制器中的方法里面的形参进行映射,并自动赋值,以及String与int这些的自动转换。
那么是否对于Date类型也适用呢?
如控制器中的方法是这样:
@RequestMapping(value = "/save17")
@ResponseBody
public void save17(Date date) {
System.out.println(date);
}
那么请求url如:
localhost:8080/untitled-1.0-SNAPSHOT/user/save17?date=2025/01/02
这样确实是正常的转换的。
但我们请求的date字符串也有可能是
http://localhost:8080/untitled-1.0-SNAPSHOT/user/save17?date=2025-01-02
那么这样的话就会报错400的http请求错误。
那么要解决该问题,首先是定义一个转换类实现转换接口
package com.converter;
import org.springframework.core.convert.converter.Converter;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class DateConverter implements Converter<String,Date> {
public Date convert(String dateStr) {
SimpleDateFormat format=new SimpleDateFormat("yyyy-MM-dd");
Date date=null;
try {
date=format.parse(dateStr);
} catch (ParseException e) {
e.printStackTrace();
}
return date;
}
}
然后Spring MVC配置文件xml中声明转换器并用mvc注解驱动的conversion-service
指定到声明的转换器的id上即可。
那么完整的Spring MVC配置文件xml如:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd
">
<context:component-scan base-package="com.web">
<context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
</context:component-scan>
<!--
配置内部资源视图解析器
-->
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/jsp/"></property>
<property name="suffix" value=".jsp"></property>
</bean>
<!--声明转换器-->
<bean id="conversionService" class="org.springframework.context.support.ConversionServiceFactoryBean">
<property name="converters">
<list>
<bean class="com.converter.DateConverter"/>
</list>
</property>
</bean>
<!--mvc注解驱动-->
<mvc:annotation-driven conversion-service="conversionService"/>
<mvc:default-servlet-handler/>
</beans>
Converter 转换器
关键字词:SpringMVC,转换器,日期,字符串,对象,请求,参数
上一篇:20-SpringMVC的请求-获得请求参数-Restful风格的参数的获取(类似php中pathinfo形式参数获取)
下一篇:22-SpringMVC的请求-获得请求参数-获得Servlet相关API(获取request、response、session对象)
相关文章
- 20-SpringMVC的请求-获得请求参数-Restful风格的参数
- 19-SpringMVC的请求-获得请求参数-参数绑定注解@Reque
- 18-SpringMVC的请求-获得请求参数-配置全局乱码过滤器
- 17-SpringMVC的请求-获得请求参数-静态资源访问的开启
- 16-SpringMVC的请求-获得请求参数-获得集合类型参数2(
- 15-SpringMVC的请求-获得请求参数-获得集合类型参数1(
- 14-SpringMVC的请求-获得请求参数-获得数组类型参数(g
- 13-SpringMVC的请求-获得请求参数-获得POJO类型参数(
- 12-SpringMVC的请求-获得请求参数-获得基本类型参数(
- 09-SpringMVC的数据响应-回写数据-返回对象或集合2(更