举例说明, 将一个字符串转换成的 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. 日调度万亿次,微服务框架TSF大规模应用——云+未来峰会开发者专场回顾

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 演讲者:张浩 腾讯云中间件产品负责人 背景:众多开发者中,一定经历类似的甜蜜烦恼,就是当线上业务规模越来越大,系统分支发展越来越多的时候,初 ...

  2. 使用NDK编译含JNI的Android项目常见问题解决方案

    有时候,自己下载的或者拷贝过来的JNI项目出现莫名错误,通常是找不到头文件,可能解决方案如下: Removing the C nature: The only way I could find to ...

  3. .NET环境下的DPAPI加密编程

    Windows的本地加密保护机制提供了简单的调用接口,密钥的生成.保护等事项一概由系统来处理,其编程接口称为DPAPI.这一加密保护机制的边界是用户登录帐户或者本地计算机系统,使用操作系统设定的加密处 ...

  4. Golang教程:并发介绍

    Go是并发语言,而不是并行语言.在讨论Go并发性之前,我们必须首先了解什么是并发,以及并发与并行的区别. 什么是并发 并发(concurrency)是指一次处理大量事情的能力.让我们用一个例子来说明. ...

  5. 记一次java程序内存溢出问题

    一个自然语言处理程序,在封装为web-service后,部署到线上运行. 但最近出现了内存溢出的情况,频繁的out of memory. 先盲目尝试在启动脚本中增加-XX:-UseGCOverhead ...

  6. flask用session记录状态

    html <form action="/login" method="POST"> <input type="text" ...

  7. Js的核心:找到DOM

    掌握 JavaScript 的核心之一:DOM,能够熟悉DOM相关操作,了解JavaScript事件机制 一.使用getElementById().getElementsByTagName().chi ...

  8. 如何检测页面是否有重复的id属性值

    <!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta nam ...

  9. JS原型学习笔记

    1.原型是函数对象的属性,它的初始值是一个空对象,这个prototype原型对象可以添加方法和属性. 2.构造器对象查找属性和方法时先查找构造器后查找原型. 3.若构造器中的属性和原型中的属性相同,构 ...

  10. 在vue中安装使用vux

    最近因为的工作的原因在弄vue,从后端弄到前端之前一直用js,现在第一次接触vue感觉还挺有意思的,就是自己太菜了,这个脑子呀....不太够用.....页面设计用了一个叫vux的东西,vux可以提供一 ...