作者: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 前后端数据交互 之 HttpRequest、HttpResponse、render、redirect

    在使用三神装的时候,首先当然是得要导入它们: from django.shortcuts import HttpResponse, render, redirect   一.HttpRequest捕获 ...

  2. 利用 gulp 来合并seajs 的项目

    gulp-seajs-transport 和 gulp-seajs-concat这两个gulp插件 gulp-seajs-transpor 这个插件这样是给每个js模块 标示 模块名称 gulp-se ...

  3. kbmMW 5.06.20试用笔记

    1.kbmMWConfiguration自动备份配置文件的问题还没有修正. 下面是以前写过的内容,再一次在新闻组中提出这个问题: kbmMW提供一个强大的配置信息管理对象,前期译过这个对象的介绍,在使 ...

  4. Android输入法框架系统(上)

    输入法,就是用来输入字符(包括英文,俄文,中文)的工具.输入法你可以看成是一种字符发生器,它将输入数据触摸事件或者按键事件转化为其他更丰富的字符.在PC时代,输入法的原始输入来自实体键盘,鼠标,然后输 ...

  5. WebGL编程指南案例解析之平移和旋转的math库实现

    这里说的math库实现,指的是,通过一般的加减乘除(角度计算)来更新坐标值. 因为涉及到坐标的变化,所以这里都是基于对顶点着色器的修改 平移: var vShader = ` attribute ve ...

  6. C语言SQLite3基本操作Demo

    /************************************************************************** * C语言SQLite3基本操作Demo * 声 ...

  7. TF-IDF算法(2)—python实现

    参加完数模之后休息了几天,今天继续看TF-IDF算法.上篇中对TF-IDF算法已经做了详细的介绍,在此不再赘述.今天主要是通过python,结合sklearn库实现该算法,并通过k-means算法实现 ...

  8. Robot Framework 安装笔记

    安装python 自行搜寻安装 安装pip 进入python目录下的Scripts文件夹下,cmd,执行easy_install.exe pip 安装pywin32 pip install pywin ...

  9. php-fpm配置及操作

    启动与停止 启动 /usr/local/php/sbin/php-fpm 停止 pkill php-fpm

  10. SUST OJ 1642: 绝地求生—死亡顺序

    1642: 绝地求生-死亡顺序 时间限制: 1 Sec  内存限制: 128 MB提交: 81  解决: 53[提交][状态][讨论版] 题目描述 最近陕西科技大学六公寓的小东同学深深的入迷了一款游戏 ...