举例说明, 将一个字符串转换成的 User 类型。

例如将字符串 1-zcd-1234-zcd@163.com-1999/12/12  转换成User 类型。

一、实体类

public class User
{
private Integer id;
private String name;
private Integer money;
private String email; private Date birth; //构造器 、getter 、setter 方法省略  
}

二、Controller

@Controller
@RequestMapping(value="testHiddenHttpMethodFilter")
public class TestHiddenHttpMethodFilter
{
@RequestMapping(value="dataConvertAndFormat", method=RequestMethod.GET)
public String dataConvertAndFormat(Map<String, Object> map)
{
map.put("user", new User()); return "testMethod";
} @RequestMapping(value="testConverter", method=RequestMethod.POST)
public String testConverter(User user)
{
System.out.println("进入testConverter"); System.out.println(user);
return "success";
} }

在表单中输入一个字符串 1-zcd-1234-zcd@163.com-1999/12/12

<form
action="${pageContext.request.contextPath}/testHiddenHttpMethodFilter/testConverter"
method="POST" > User:<input type="text" name="user"> <br>
<input type="submit" name="Submit" value="提交">
<br>
</form>

下面的代码没有考虑异常情况,比如说不进行数字转换,日期转换等等。仅仅考虑正确的情况。

@Component
public class UserConverter implements Converter<String, User>
{ @Override
public User convert(String source)
{
User user = new User(); String[] vals = source.split("-");
System.out.println(source);
System.out.println(vals); for (String s : vals)
{
Integer id = Integer.valueOf(vals[0]);
String name = vals[1];
Integer money = Integer.valueOf(vals[2]);
String email = vals[3];
Date birth = new Date(vals[4]); user.setId(id);
user.setName(name);
user.setMoney(money);
user.setEmail(email);
user.setBirth(birth);
} return user;
} }

最后还要在SpringMVC的配置文件中配置一下

<!-- 扫描包 -->
<context:component-scan base-package="com.zcd.springmvc"></context:component-scan> <!-- 配置视图解析器 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/views/"></property>
<property name="suffix" value=".jsp"></property>
</bean> <mvc:default-servlet-handler/>    //进行一下配置
<mvc:annotation-driven conversion-service="conversionService" ></mvc:annotation-driven> <bean id="conversionService" class="org.springframework.context.support.ConversionServiceFactoryBean">
<property name="converters">
<set>
<ref bean="userConverter" />
</set>
</property>
</bean>

SpringMVC 如何定义类型转换器的更多相关文章

  1. struts2自己定义类型转换器

    1.1.  struts2自己定义类型转换器 1)        自定类型转换类,继承DefaultTypeConverter类 package com.morris.ticket.conversio ...

  2. struts2---自定义类型转换器

    从servlet我们知道从页面获取到的参数都是string类型,但是struts2中基本的数据类型,它可以自动帮我们转化为其对应的包装类,就像获取到123,可以自动转化为Integer,但是比如201 ...

  3. springmvc中的类型转换器

    在使用springmvc时可能使用@RequestParam注解或者@RequestBody注解,他们的作用是把请求体中的参数取出来,给方法的参数绑定值. 假如方法的参数是自定义类型,就要用到类型转换 ...

  4. springmvc:自定义类型转换器代码编写

    字符串转换日期: 1.自定义一个类 /** * 字符串转换日期 */ public class StringToDateConverter implements Converter<String ...

  5. 《SpringMVC从入门到放肆》十二、SpringMVC自定义类型转换器

    之前的教程,我们都已经学会了如何使用Spring MVC来进行开发,掌握了基本的开发方法,返回不同类型的结果也有了一定的了解,包括返回ModelAndView.返回List.Map等等,这里就包含了传 ...

  6. springmvc 类型转换器 自定义类型转换器

    自定义类型转换器的步骤: 1.定义类型转换器 2.类型转换器的注册(在springmvc配置文件处理) 来解决多种日期格式的问题: springmvc 类型转换器 表单数据填错后返回表单页面(接上面的 ...

  7. 14.SpringMVC核心技术-类型转换器

    类型转换器 在前面的程序中,表单提交的无论是 int 还是 double 类型的请求参数,用于处理该请求 的处理器方法的形参, 均可直接接收到相应类型的相应数据,而非接收到 String 再手工转换. ...

  8. springmvc——自定义类型转换器

    一.什么是springmvc类型转换器? 在我们的ssm框架中,前端传递过来的参数都是字符串,在controller层接收参数的时候springmvc能够帮我们将大部分字符串类型的参数自动转换为我们指 ...

  9. 自己定义struts2中action类型转换器

    DateAction.java中代码例如以下: package com.itheima.action; import java.util.Date; public class DateAction { ...

随机推荐

  1. Maven 常见知识点整理

    认识 Maven Maven 的作用? 1.添加第三方jar包 2.解决jar包之间的依赖关系 3.获取第三方jar包 4.将项目拆成多个工程模块 Maven 是什么? 是Apache软件基金会组织维 ...

  2. RequireJs使用快速入门

    前言:Requirejs作为一个ES5环境流行的模块加载器,在很多项目中使用它.而且这个开源库任然在更新,同类产品seajs已经不更新了. ES6之后引入import 或者使用Commonjs的方式引 ...

  3. 关于android studio2.3和android studio3.0

    今天又重新把androidstudio2.3重新装上了,实在是受不了android studio3.0了,太恶心人了 说一下为何改用android studio3.0: 优点: 1. 如果只是写纯应用 ...

  4. Python-常用模块及简单的案列

    1.模块   函数的优点之一,就是可以使用函数将代码块与主程序分离,通过给函数指定一个描述性的名称,并将函数存储在被称为模块的独立文件中,再将模块导入主程序中,通过import语句允许在当前运行的程序 ...

  5. Firebird execute block 批处理

    火鸟的批处理,效率好高,使用简单. execute block as declare variable i ; begin ) do begin :i = :i + ; insert into m_u ...

  6. 不能修改列 "。。",因为它是计算列,或者是 UNION 运算符的结果。

    修改Mapping this.Property(t => t...).HasDatabaseGeneratedOption(System.ComponentModel.DataAnnotatio ...

  7. C Primer Plus note2

    warning: 'mmin' is used uninitialized in this function [-Wuninitialized]| 编译器出现如上图的警告,是因为变量‘mmin’没有初 ...

  8. Maven打包时,不包含jar包

    在给Maven项目打war包时,如果不想把依赖中的jar包也包含进去,可以在plugins中加入 <span style="white-space:pre"> < ...

  9. express实现todolist

    app.js var express = require('express'); var todoController = require('./controllers/todoController. ...

  10. 子级用css float浮动 而父级不能自适应高度解决方法

    解决子级对象使用css float浮动 而父级div不能自适应高度,不能被父级内容撑开解决方法,父级div没有高度解决方法. 当在对象内的盒子使用了float后,导致对象本身不能被撑开自适应高度,这个 ...