Spring MVC 学习指南--- 第六章 converter 和formatter
来源:互联网 发布:淘宝网怎么删除评论 编辑:程序博客网 时间:2024/06/01 11:32
Spring可以完成表达数据到对象属性的转换,其实默认提供了很多类型转换器。
详细内容可以参考http://www.cnblogs.com/wewill/p/5676920.html
本文主要讲解converter和formatter的使用。是类似helloworld的程序。
一、spring 中有许多方式实现自动的格式转换,都需要注册
<mvc:annotation-driven conversion-service="具体实现" />
实现:
(1)conversionService 可以转换任意类型为指定类型
(2)formaterService 只能转换String到指定类型,适合web工程
(3)formatterRegistrars 另一种注册formatter的形式,将formatter在registaras直接进行注册。
代码:
配置文件:
<?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:p="http://www.springframework.org/schema/p" 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-4.1.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.1.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.1.xsd"> <!--<mvc:annotation-driven conversion-service="conversionService" />--> <!--<mvc:annotation-driven conversion-service="formaterService" /> --> <mvc:annotation-driven conversion-service="formatterRegistrars" /> <bean id="conversionService" class="org.springframework.context.support.ConversionServiceFactoryBean"> <property name="converters"> <list> <bean class="Converter.StringToDateConverter"> <constructor-arg type="java.lang.String" value="MM-dd-yyyy"/> </bean> </list> </property> </bean> <bean id = "formaterService" class="org.springframework.format.support.FormattingConversionServiceFactoryBean"> <property name="formatters"> <set> <bean class = "DateFormMatter.DateFormatter"> <constructor-arg type="java.lang.String" value="MMddyyyy"/> </bean> </set> </property> </bean> <bean id ="formatterRegistrars" class ="org.springframework.format.support.FormattingConversionServiceFactoryBean"> <property name="formatterRegistrars"> <set> <bean class="DateFormMatter.MyFormatterRegistar"> <constructor-arg type="java.lang.String" value="MM-dd-yyyy"/> </bean> </set> </property> </bean> </beans>
converters实现:
package Converter;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Date;import org.springframework.core.convert.converter.Converter;public class StringToDateConverter implements Converter<String, Date>{private String datePattern;@Overridepublic Date convert( String s){SimpleDateFormat dateFormat = new SimpleDateFormat(datePattern);dateFormat.setLenient(false);try {return dateFormat.parse(s);} catch (ParseException e) {// TODO Auto-generated catch blocke.printStackTrace();throw new IllegalArgumentException("invalid date format ,Please use this pattern\""+datePattern +"\"");}}public StringToDateConverter(String datePattern){this.datePattern = datePattern;System.out.println("instantiating .... converter with pattern:*"+datePattern);;}}
formatter实现
package DateFormMatter;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Date;import java.util.Locale;import org.springframework.format.Formatter;public class DateFormatter implements Formatter<Date>{private String datePattern;private SimpleDateFormat dateFormat;public DateFormatter(String datePattern) {super();this.datePattern = datePattern;dateFormat = new SimpleDateFormat(this.datePattern);}@Overridepublic String print(Date date, Locale locale) {return dateFormat.format(date);}@Overridepublic Date parse(String s, Locale locale) throws ParseException {return dateFormat.parse(s);}}
Registrars 定义
package DateFormMatter;import org.springframework.format.FormatterRegistrar;import org.springframework.format.FormatterRegistry;public class MyFormatterRegistar implements FormatterRegistrar {private String datePattern;public MyFormatterRegistar(String datePattern){this.datePattern = datePattern;}@Overridepublic void registerFormatters(FormatterRegistry register) {// TODO Auto-generated method stubregister.addFormatter(new DateFormatter(datePattern));}}
阅读全文
0 0
- Spring MVC 学习指南--- 第六章 converter 和formatter
- Spring中Converter和Formatter的异同点
- Spring MVC 学习指南---第七章 验证器
- Spring MVC学习指南1
- Spring MVC学习指南2
- Spring MVC学习指南3
- Spring MVC 学习指南--- 第五章 数据绑定和表单标签绑定
- 【笔记】Spring MVC学习指南(六)转换器和格式化
- (笔记)Spring MVC学习指南_转换器和格式化
- Spring MVC学习指南_源码
- Spring MVC学习指南(1-4章总结)
- Spring MVC学习指南(5-7章总结)
- Spring MVC学习指南(8-10章总结)
- Spring MVC学习指南(11-12章总结)
- Spring MVC 学习指南---第八章 表达式语言(EL)
- 《数据结构》第六章 图 学习指南
- Spring MVC 之类型转换 Converter
- (笔记)Spring MVC学习指南_模型2和MVC模式
- [BZOJ3209]花神的数论题
- php加密
- 学生成绩管理系统(结构体版)
- 添加样式
- C语言实现单链表面试题--基础篇
- Spring MVC 学习指南--- 第六章 converter 和formatter
- find命令错误提示“路径必须在表达式之前”的解决方法
- POJ 1984 Navigation Nightmare 笔记
- Python-第三方库requests详解
- mysql 日志
- 苹果CMS写模板中遇到的问题
- 解决Cannot send session cache limiter
- 7个开源的SNS社交网络平台
- 16个非常优秀的在线学习编程的网站