作者:ssslinppp
1. 摘要
在spring 中定義了3中類型轉換接口,分別為:
- Converter接口 :使用最簡單,最不靈活;
- ConverterFactory接口 :使用較復雜,比較靈活;
- GenericConverter接口 :使用最復雜,也最靈活;
可參考鏈接:
http://blog.csdn.net/renhui999/article/details/9837897 。看看他們的介紹;
本文僅介紹
Converter接口的使用。
這里僅僅是一個簡單的
類型轉換
示例,重點在於說明SpringMVC類型轉換的方法、配置及流程;
基本功能說明:
1. 前台傳遞的數據格式形如:“zhangSan:888”;
2. 將
“zhangSan:888”
字符串轉換為Person對象;

具體過程:
- 定義轉換類,實現Converter<S,T>接口;
- 裝配自定義的conversionService;
2. 定義類型轉換類
StringToPersonConverter.java

package com.ll.model;
import org.springframework.core.convert.converter.Converter;
/**
* @author ssslinppp
* Spring MVC數據轉換-簡單示例
* 將形如:“zhangSan:888”的字符串轉換為Person對象
*
*/
public class StringToPersonConverter implements Converter<String,Person>{
public Person convert(String source) {
Person p1 = new Person();
if(source != null){
String[] items = source.split(":");
p1.setUsername(items[0]);
p1.setPasswd(items[1]);
}
return p1;
}
}
3. 裝配自定義的conversionService
在Spring的web上下文中配置:

spring-servlet.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: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-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">
<!-- 掃描web包,應用Spring的注解 -->
<context:component-scan base-package="com.ll.web"/>
<mvc:annotation-driven conversion-service="conversionService"/>
<bean id="conversionService"
class="org.springframework.context.support.ConversionServiceFactoryBean">
<property name="converters">
<list>
<bean class="com.ll.model.StringToPersonConverter" />
</list>
</property>
</bean>
<!-- 配置視圖解析器,將ModelAndView及字符串解析為具體的頁面,默認優先級最低 -->
<bean
class="org.springframework.web.servlet.view.InternalResourceViewResolver"
p:viewClass="org.springframework.web.servlet.view.JstlView"
p:prefix="/jsp/"
p:suffix=".jsp" />
</beans>
4. 控制器

當前台發送請求:
將person=zhangsan:666傳遞到后台,被StringToPersonConverter轉換為Person對象;
跳轉到界面:test.jsp


附件列表