作者: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


附件列表

【Spring学习笔记-MVC-8】SpringMVC之类型转换Converter的更多相关文章

  1. 【Spring学习笔记-MVC-9】SpringMVC数据格式化之日期转换@DateTimeFormat

    作者:ssslinppp       1. 摘要 本文主要讲解Spring mvc数据格式化的具体步骤: 并讲解前台日期格式如何转换为java对象: 在之前的文章<[Spring学习笔记-MVC ...

  2. 【Spring学习笔记-MVC-4】SpringMVC返回Json数据-方式2

    <Spring学习笔记-MVC>系列文章,讲解返回json数据的文章共有3篇,分别为: [Spring学习笔记-MVC-3]SpringMVC返回Json数据-方式1:http://www ...

  3. 【Spring学习笔记-MVC-3】SpringMVC返回Json数据-方式1

    <Spring学习笔记-MVC>系列文章,讲解返回json数据的文章共有3篇,分别为: [Spring学习笔记-MVC-3]SpringMVC返回Json数据-方式1:http://www ...

  4. 3.《Spring学习笔记-MVC》系列文章,讲解返回json数据的文章共有3篇,分别为:

    转自:https://www.cnblogs.com/ssslinppp/p/4528892.html 概述 在文章:<[Spring学习笔记-MVC-3]SpringMVC返回Json数据-方 ...

  5. 1.《Spring学习笔记-MVC》系列文章,讲解返回json数据的文章共有3篇,分别为:

    转自:https://www.cnblogs.com/ssslinppp/p/4528892.html [Spring学习笔记-MVC-3]SpringMVC返回Json数据-方式1:http://w ...

  6. 2.《Spring学习笔记-MVC》系列文章,讲解返回json数据的文章共有3篇,分别为:

    转自:https://www.cnblogs.com/ssslinppp/p/4528892.html 个人认为,使用@ResponseBody方式来实现json数据的返回比较方便,推荐使用. 摘要 ...

  7. 【Spring学习笔记-MVC-6】SpringMVC 之@RequestBody 接收Json数组对象

    作者:ssslinppp       1. 摘要 程序流程: 前台使用ajax技术,传递json字符串到后台: 后台使用Spring MVC注解@RequestBody 接受前台传递的json字符串, ...

  8. 【Spring学习笔记-MVC】Spring MVC之多文件上传 (zhan)

    http://www.cnblogs.com/ssslinppp/p/4607330.html (zhan)

  9. 【Spring学习笔记-MVC-3.1】SpringMVC返回Json数据-方式1-扩展

    <Spring学习笔记-MVC>系列文章,讲解返回json数据的文章共有3篇,分别为: [Spring学习笔记-MVC-3]SpringMVC返回Json数据-方式1:http://www ...

随机推荐

  1. Python Django 前后端数据交互 之 前端向后端发送数据

    Python Django 之 前端向后端发送数据

  2. 《Python》 内置函数补充、匿名函数、递归初识

    一.内置函数补充: 1.数据结构相关(24): 列表和元祖(2):list.tuple list:将一个可迭代对象转化成列表(如果是字典,默认将key作为列表的元素). tuple:将一个可迭代对象转 ...

  3. Python 编码问题(十四)

    一.了解字符编码的知识储备 1. 文本编辑器存取文件的原理(nodepad++,pycharm,word) 打开编辑器就打开了启动了一个进程,是在内存中的,所以在编辑器编写的内容也都是存放与内存中的, ...

  4. 《C语言中分配了动态内存后一定要释放吗?》

    问:比如main函数里有一句 malloc(),后面没有free()1.那么当main结束后,动态分配的内存不会随之释放吗?2.如果程序结束能自动释放,那么还加上free(),是出于什么考虑? 答: ...

  5. python3.6 django2.06 使用QQ邮箱发送邮件

    开通QQ邮箱IMAP/SMTP服务,忘记了,重新开通一下,记住密码串. import smtplib from email.mime.text import MIMEText # 收件人列表 mail ...

  6. 保护 iOS 用户数据安全: Keychain 和 Touch ID

    原文:How To Secure iOS User Data: The Keychain and Touch ID 作者:Tim Mitra 译者:kmyhy 更新说明:本教程由 Tim Mitra ...

  7. jmeter随笔(31)--RandomString和Random函数使用

    在使用jmeter中,用到了一些自带的函数,后面我逐步把自己用到的分享出来,当然这些是比较简单的,也可自己看看英文文档,小怪这里只是结合自己分享. 视频介绍: https://v.qq.com/x/p ...

  8. [LeetCode&Python] Problem 872. Leaf-Similar Trees

    Consider all the leaves of a binary tree.  From left to right order, the values of those leaves form ...

  9. EXCEL教程,包你一学就会

    片名称:自动筛选 照片名称:在Excel中字符替换 照片名称:在Excel中直接编辑“宏” 照片名称:在Excel中为导入外部数据 照片名称:在Excel中行列快速转换 照片名称:在Excel中运行“ ...

  10. make: *** No rule to make target `/thread_native.h', needed by `ossl.o'. Stop

    修改 Makefile 增加 top_srcdir = ../.. 即可 该文件大多存于ruby源文件下 PS:有时也可能是makefile文件多了空格所致