【Spring學習筆記-MVC-8】SpringMVC之類型轉換Converter


作者:ssslinppp      

1. 摘要


在spring 中定義了3中類型轉換接口,分別為:
  1.   Converter接口              :使用最簡單,最不靈活;
  2.   ConverterFactory接口  :使用較復雜,比較靈活;
  3.   GenericConverter接口 :使用最復雜,也最靈活;
可參考鏈接:  http://blog.csdn.net/renhui999/article/details/9837897 。看看他們的介紹;
本文僅介紹 Converter接口的使用。

這里僅僅是一個簡單的 類型轉換 示例,重點在於說明SpringMVC類型轉換的方法、配置及流程;

基本功能說明:
1. 前台傳遞的數據格式形如:“zhangSan:888”;

2. 將 “zhangSan:888” 字符串轉換為Person對象;

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

2. 定義類型轉換類


StringToPersonConverter.java

   
   
   
           
  1. package com.ll.model;
  2. import org.springframework.core.convert.converter.Converter;
  3. /**
  4. * @author ssslinppp
  5. * Spring MVC數據轉換-簡單示例
  6. * 將形如:“zhangSan:888”的字符串轉換為Person對象
  7. *
  8. */
  9. public class StringToPersonConverter implements Converter<String,Person>{
  10. public Person convert(String source) {
  11. Person p1 = new Person();
  12. if(source != null){
  13. String[] items = source.split(":");
  14. p1.setUsername(items[0]);
  15. p1.setPasswd(items[1]);
  16. }
  17. return p1;
  18. }
  19. }


3. 裝配自定義的conversionService


在Spring的web上下文中配置:

spring-servlet.xml

   
   
   
           
  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
  4. xmlns:context="http://www.springframework.org/schema/context"
  5. xmlns:mvc="http://www.springframework.org/schema/mvc"
  6. xsi:schemaLocation="http://www.springframework.org/schema/beans
  7. http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
  8. http://www.springframework.org/schema/context
  9. http://www.springframework.org/schema/context/spring-context-3.0.xsd
  10. http://www.springframework.org/schema/mvc
  11. http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">
  12. <!-- 掃描web包,應用Spring的注解 -->
  13. <context:component-scan base-package="com.ll.web"/>
  14. <mvc:annotation-driven conversion-service="conversionService"/>
  15. <bean id="conversionService"
  16. class="org.springframework.context.support.ConversionServiceFactoryBean">
  17. <property name="converters">
  18. <list>
  19. <bean class="com.ll.model.StringToPersonConverter" />
  20. </list>
  21. </property>
  22. </bean>
  23. <!-- 配置視圖解析器,將ModelAndView及字符串解析為具體的頁面,默認優先級最低 -->
  24. <bean
  25. class="org.springframework.web.servlet.view.InternalResourceViewResolver"
  26. p:viewClass="org.springframework.web.servlet.view.JstlView"
  27. p:prefix="/jsp/"
  28. p:suffix=".jsp" />
  29. </beans>

4. 控制器



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






附件列表

     


    免責聲明!

    本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



     
    粵ICP備18138465號   © 2018-2025 CODEPRJ.COM