SpringMVC转换器

先来说new SimpleDateFormat("yyyy-MM-dd").parse("2018-10-01");和new SimpleDateFormat("yyyy-MM-dd").format(new Date());的区别

new SimpleDateFormat("yyyy-MM-dd").parse("2018-10-01");是将2018-10-01转化成Mon Oct 01 00:00:00 CST 2018

new SimpleDateFormat("yyyy-MM-dd").format(new Date());是将Date形式的时间转化成yyyy-MM-dd这种格式

现在来说SpringMVC里面的转换器,用时间转换器为例

@RequestMapping("/list1")
	public String list1(Date date,Model m){
		m.addAttribute("date",date);
		return "list11";
	}

将2018-10-01转化成Mon Oct 01 00:00:00 CST 2018这种格式

那么就写Date转换类

//输入的是String类型,输出的是Date类型
public class MyDateConverter implements Converter<String, Date> {

	@Override
	public Date convert(String t) {
		 try {
			Date date = new SimpleDateFormat("yyyy-MM-dd").parse(t);
			return date;
		} catch (ParseException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return null;
	}

}

该类实现类型的转换

下来是在配置文件里配置转换器

<!-- 转换器配置 -->
	<bean id="conversionService"
		class="org.springframework.format.support.FormattingConversionServiceFactoryBean">
		<property name="converters">
			<set>
                 <!--编写的转换类-->
				<bean class="edu.xaled.web.conver.MyDateConverter" />
			</set>
		</property>
	</bean>

再将转换器的id加到自动处理器上 

<!-- 自动下载最新版本的映射处理器,处理适配器 (加上转换器的id,这样转换器起作用了) -->
	 <mvc:annotation-driven conversion-service="conversionService"></mvc:annotation-driven> 

输入网址的格式如下

http://localhost:8080/smvc/haha/xixi/list1.action?date=1212-11-11

date的形式必须为yyyy-MM-dd这种形式,否则就不能执行

以此类推也可以写其他的转换器,我上面写的是时间转化器

猜你喜欢

转载自blog.csdn.net/zxl1148377834/article/details/82913998