SpringMVC类型转换:

  1 日期类型转换:

  private Date birthday;
  <label for="">生日:<input type="text" name="birthday" /></label><br />

  针对日期类型,springmvc默认没有做类型转换,因此会报告400错误,此时需要配置日期类型转换器

    1.1  在pojo层添加注解:@DateTimeFormat()

        pattern:日期格式(前端传输的日期也必须是这个格式)

@DateTimeFormat(pattern="yyyy-MM-dd")
private Date birthday;

    1.2 自定义类型转换器

public class DateConverter implements Converter<String, Date>{
/**
* 将字符串转换成日期格式,重写convert方法
*/
@Override
public Date convert(String source) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
try {
sdf.setLenient(false);//是否宽松解析:默认true
return sdf.parse(source);
} catch (ParseException e) {
e.printStackTrace();
}
return null;
}
}
    <!-- 配置注解驱动 -->
<mvc:annotation-driven conversion-service="myConversion" />
<!-- 类型转换器 -->
<bean id="myConversion" class="org.springframework.format.support.FormattingConversionServiceFactoryBean">
<property name="converters">
<set>
<bean class="com.roxy.springmvc.converter.DateConverter"></bean>
</set>
</property>
</bean>

    1.3 在controller中添加方法

    @InitBinder
public void initBinder(ServletRequestDataBinder binder){
binder.registerCustomEditor(Date.class, new CustomDateEditor(new SimpleDateFormat("yyyy-MM-dd"), true));
}

  2 对象类型转换:

    前端传递的数据为String类型,而后台处理的是对象类型

public class UserConverter implements Converter<String, User>{
/**
* 将字符串转换成对象
*/
@Override
public User convert(String source) {
if(source != null) {
String[] split = source.split("|");
if(split != null && split.length == 3) {
String username = split[0];
Integer age = Integer.parseInt(split[1]);
String email = split[2];
String birday = split[3]; User user = new User();
user.setUsername(username);
user.setAge(age);
user.setEmail(email); return user;
}
}
return null;
}
<bean class="com.roxy.springmvc.converter.UserConverter"></bean>

Spring MVC 类型转换的更多相关文章

  1. Spring MVC类型转换

    类型转换器引入 为什么页面上输入"12",可以赋值给Handler方法对应的参数?这是因为框架内部帮我们做了类型转换的工作.将String转换成int 但默认类型转换器并不是可以将 ...

  2. Spring MVC JSON 实现JsonSerializer Date类型转换

    转载至:http://blog.csdn.net/lantianzhange/article/details/40920933 在Spring MVC中存在两大类的类型转换,一类是Json,一个是Sp ...

  3. Spring MVC 使用介绍(八)—— 类型转换

    一.概述 spring类型转换有两种方式: PropertyEditor:可实现String<--->Object 之间相互转换 Converter:可实现任意类型的相互转换 类型转换的过 ...

  4. 0060 Spring MVC的数据类型转换--ConversionService--局部PropertyEditor--全局WebBindingInitializer

    浏览器向服务器提交的数据,多是字符串形式,而有些时候,浏览器需要Date.Integer等类型的数据,这时候就需要数据类型的转换器 使用Spring的ConversionService及转换器接口 下 ...

  5. Spring MVC JSON自己定义类型转换(续)

    前面提到了两种转换类型的方法(Spring MVC JSON自己定义类型转换),这里针对Json转换提供一种更简便的方法. 通过配置全局的日期转换来避免使用麻烦的注解. 首先用到了一个简单的日期工具类 ...

  6. Spring MVC JSON自己定义类型转换

    版权声明:版权归博主全部.转载请带上本文链接.联系方式:abel533@gmail.com https://blog.csdn.net/isea533/article/details/28625071 ...

  7. spring mvc绑定参数之 类型转换 有三种方式:

    spring mvc绑定参数之类型转换有三种方式: 1.实体类中加日期格式化注解(上次做项目使用的这种.简单,但有缺点,是一种局部的处理方式,只能在本实体类中使用.方法三是全局的.) @DateTim ...

  8. Spring mvc参数类型转换

    1,需求 有时候我们接收到的参数为String类型的,但是我们需要将它们转化为其他类型的如:date类型,枚举类型等等,spring mvc为我们提供了这样的功能. 2,配置文件 在springmvc ...

  9. Spring MVC 学习总结(二)——控制器定义与@RequestMapping详解

    一.控制器定义 控制器提供访问应用程序的行为,通常通过服务接口定义或注解定义两种方法实现. 控制器解析用户的请求并将其转换为一个模型.在Spring MVC中一个控制器可以包含多个Action(动作. ...

随机推荐

  1. hiho一下 第165周#1327 : 分隔相同字符

    题目要求: 时间限制:10000ms单点时限:1000ms内存限制:256MB 描述给定一个只包含小写字母'a'-'z'的字符串 S ,你需要将 S 中的字符重新排序,使得任意两个相同的字符不连在一起 ...

  2. js 控件样式显隐和赋值

    控制样式显示: $("#againMetting")[0].style.display = "inline";//显示 $("#againMettin ...

  3. Centos7 设置Mongodb开机启动-自定义服务

    (1).在/lib/systemd/system/目录下新建mongodb.service文件,内容如下 [Unit] Description=mongodb After=network.target ...

  4. 搭建Cordova + Ionic + WebStorm环境开发Web App应用

    1. 下载并且安装Node.js(https://nodejs.org/en/) 2. 打开终端,安装cordova (如果安装失败或者卡住不动则重新安装)    sudo npm install - ...

  5. python获取代理IP并测试是否可用

    # coding: utf-8 import urllib2 import re import time def getDL(page): url = 'http://www.xicidaili.co ...

  6. mysql binlog to sql and show mysqlstatusadmin

    sed '/WHERE/{:a;N;/SET/!ba;s/\([^\n]*\)\n\(.*\)\n\(.*\)/\3\n\2\n\1/}' 1.txt | sed -r '/WHERE/{:a;N;/ ...

  7. VS中的类模板

    在目录C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\ItemTemplates\CSharp\Co ...

  8. 【亲测】<g++/gcc>CentOS下g++: command not found问题的解决(c++环境安装)

    CentOS下g++: command not found问题的解决 2017年02月27日 18:09:06 阅读数:5174 标签: centosgcc 更多 个人分类: 问题分析   版权声明: ...

  9. Tomcat实战-调优方案

    Tomcat的默认配置,性能并不是最优的,可以通过优化tomcat以此来提高网站的并发能力.提高Tomcat的性能可以分为两个方向. 服务器资源 服务器所能提供CPU.内存.硬盘的性能对处理能力有决定 ...

  10. C++进阶--Named Parameter Idiom

    //############################################################################ /* Named Parameter Id ...