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. Big-endian/Little-endian, LSB/MSB

    Least significant byte (LSB) Most significant byte (MSB) Big-endian machines store the most-signific ...

  2. Monte Carlo tree search 学习

    https://en.wikipedia.org/wiki/Monte_Carlo_tree_search 蒙特卡洛树搜索(MCTS)基础 http://mcts.ai/about/index.htm ...

  3. php-cgi和php-fpm,Windows环境下解决Nginx+php并发访问阻塞问题。

    php-cgi 是运行php,php-fpm是守护php-cgi进程 nginx配置目录运行php        location  ~ \.php$        {                 ...

  4. Promise实例的then方法

  5. ubuntu防火墙ufw使用教程

    查看ubuntu版本cat /etc/issue或者lsb_release -a 防火墙 由于Linux原始的防火墙工具iptables过于繁琐,所以ubuntu默认提供了一个基于iptable之上的 ...

  6. MongoDB 设置账号和密码

    一.安装MongoDB 1.环境配置: i.操作系统:CentOS release 6.8 (Final) [root@iZ2ze2pbbffhmn53ao4tuaZ bin]# cat /etc/r ...

  7. 使用openssl命令剖析RSA私钥文件格式

    原文 https://blog.csdn.net/zhymax/article/details/7683925 Openssl提供了强大证书功能,生成密钥对.证书,颁发证书.生成crl.验证证书.销毁 ...

  8. Linux之chgrp

    命令功能: 在lunix系统里,文件或目录的权限的掌控以拥有者及所诉群组来管理.可以使用chgrp指令取变更文件与目录所属群组,这种方式采用群组名称或群组识别码都可以.Chgrp命令就是change  ...

  9. 关于vivado----xdc文件时钟约束的初识

    关于vivado----xdc文件时钟约束的初识 1.Primary Clocks(主时钟) 然而,对于比较复杂的时钟: 2.某个模块采用的主时钟(比如说GT) 3.时钟分频 4.复杂一点的时钟描述 ...

  10. C++Builder 网站。记住学习

    http://www.ccrun.com/ C++Builder