SpringMVC 如何定义类型转换器
举例说明, 将一个字符串转换成的 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 如何定义类型转换器的更多相关文章
- struts2自己定义类型转换器
1.1. struts2自己定义类型转换器 1) 自定类型转换类,继承DefaultTypeConverter类 package com.morris.ticket.conversio ...
- struts2---自定义类型转换器
从servlet我们知道从页面获取到的参数都是string类型,但是struts2中基本的数据类型,它可以自动帮我们转化为其对应的包装类,就像获取到123,可以自动转化为Integer,但是比如201 ...
- springmvc中的类型转换器
在使用springmvc时可能使用@RequestParam注解或者@RequestBody注解,他们的作用是把请求体中的参数取出来,给方法的参数绑定值. 假如方法的参数是自定义类型,就要用到类型转换 ...
- springmvc:自定义类型转换器代码编写
字符串转换日期: 1.自定义一个类 /** * 字符串转换日期 */ public class StringToDateConverter implements Converter<String ...
- 《SpringMVC从入门到放肆》十二、SpringMVC自定义类型转换器
之前的教程,我们都已经学会了如何使用Spring MVC来进行开发,掌握了基本的开发方法,返回不同类型的结果也有了一定的了解,包括返回ModelAndView.返回List.Map等等,这里就包含了传 ...
- springmvc 类型转换器 自定义类型转换器
自定义类型转换器的步骤: 1.定义类型转换器 2.类型转换器的注册(在springmvc配置文件处理) 来解决多种日期格式的问题: springmvc 类型转换器 表单数据填错后返回表单页面(接上面的 ...
- 14.SpringMVC核心技术-类型转换器
类型转换器 在前面的程序中,表单提交的无论是 int 还是 double 类型的请求参数,用于处理该请求 的处理器方法的形参, 均可直接接收到相应类型的相应数据,而非接收到 String 再手工转换. ...
- springmvc——自定义类型转换器
一.什么是springmvc类型转换器? 在我们的ssm框架中,前端传递过来的参数都是字符串,在controller层接收参数的时候springmvc能够帮我们将大部分字符串类型的参数自动转换为我们指 ...
- 自己定义struts2中action类型转换器
DateAction.java中代码例如以下: package com.itheima.action; import java.util.Date; public class DateAction { ...
随机推荐
- 判断img图片是否加载成功
上班之余,记录一下工作中遇到的有趣问题... 事情是这样的...在做一个内嵌H5的app时,有一个“个人名片”页面...要求:如果后台接口有给头像的图片链接就用他们给的,如果没给,前端给个默认头像.. ...
- [转]oracle中查看用户权限
本文转自:http://www.cnblogs.com/QDuck/archive/2010/08/11/1797225.html 1.查看所有用户: select * from dba_user ...
- nodejs封装mssql
对mssql操作Sqlserver数据库的基本封装: 记录一下: /** * Created by chaozhou on 2015/9/18. */ var mssql = require('mss ...
- 七、cent OS下干净卸载mysql
使用以下命令查看当前安装mysql的情况rpm -qa | grep -i mysql显示之前安装的东西,示例:MySQL-client-5.5.25a-1.rhel5MySQL-server-5.5 ...
- java.lang.UnsupportedClassVersionError: action/Login : Unsupported major.minor version 52.0 (unable to load class action.Login)异常
用myeclipse新建一个web项目,用了struts2框架,tomcat启动的时候报了这个错误. 我的问题原因是tomcat7的运行环境不知道为什么设置成了myeclipse1.7的jre,我给它 ...
- FFT板子
woc......FFT这玩意儿真坑...... 一上午除了打了几遍板子什么也没干......真是废了...... 你要加油啊...... #include<cstdio> #includ ...
- 关于moucedown 的3种触发方式
与 click 事件不同 mousedown 按下鼠标就可以触发 click 只能用鼠标左键触发, 而mousedown 可以由单击.中键.或右击 触发 根据对event.which 的判断,可以 ...
- UNIX/Linux系统管理技术手册(3)----bash 数组和算术运算
复杂的数据结构和计算不是 bash 的特长.但它的确至少提供了数组和算术运算. 1.算术运算 所有的 bash 变量的值都是字符串,所以 bash 在赋值的时候并不区分数字 1 和 字符串 " ...
- Revit
log file Windows Vista or Windows 7:%LOCALAPPDATA%\Autodesk\Revit\Autodesk Revit 2016\Journals
- 比特币钱包Armory使用指南
转自:http://news.yibite.com/application/2014/0525/21603.shtml 比特币钱包Armory(https://bitcoinarmory.com/)是 ...