Springmvc.xml

配置convert,xml中配置多个相同的泛型时,xml里配置的convert会从上到下挨个执行。

    <!-- 配置注解驱动,并配置convert -->
<mvc:annotation-driven conversion-service="myConversionService"/> <!-- 配置多个convert -->
<bean id="myConversionService" class="org.springframework.format.support.FormattingConversionServiceFactoryBean">
<property name="converters">
<list>
<bean class="com.gmtx.system.convertre.DateConverter"/>
<bean class="com.gmtx.system.convertre.TimestampConverter"/>
<bean class="com.gmtx.system.convertre.NumberConverter"/>
<bean class="com.gmtx.system.convertre.BooleanConverter"/>
<bean class="com.gmtx.system.convertre.IntegerConverter"/>
<bean class="com.gmtx.system.convertre.FloatConverter"/>
<bean class="com.gmtx.system.convertre.DoubleConverter"/>
<bean class="com.gmtx.system.convertre.LongConverter"/>
<bean class="com.gmtx.system.convertre.ShortConverter"/>
<bean class="com.gmtx.system.convertre.CharConverter"/>
<bean class="com.gmtx.system.convertre.StringConvert"/>
<!-- DateTimeConverter和DateConverter都是处理成Date类型,前者是处理成年月日,后者是处理成yyyy-MM-dd HH:mm:ss,先用前面一个再用后面一个,最终以后面的为准 -->
<bean class="com.gmtx.system.convertre.DateTimeConverter"/>
</list>
</property>
</bean>

创建Convert

新建一个时间字符串转时间戳的convert。

implements Converter<String, Timestamp>这里的泛型一定要写,这里决定了你需要 使用哪个convert。xml中配置多个相同的泛型时,xml里配置的convert会从上到下挨个执行。

package com.gmtx.system.convertre;

import java.sql.Timestamp;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date; import org.springframework.core.convert.converter.Converter; /**
* 時間轉時間戳
*/
public class TimestampConverter implements Converter<String, Timestamp> { public Timestamp convert(String timeStr) {
Timestamp t = null;
if (timeStr!=null && timeStr != "") {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = null;
try {
date = format.parse(timeStr);
} catch (ParseException e) {
e.printStackTrace();
}
//日期转时间戳(毫秒)
t = new Timestamp(date.getTime());
}
return t;
}
}

使用Convert

在Controller中使用,dt的类型决定使用哪个Convert,前面的@RequestParam在参数名和变量名一样的时候可以不写。

@Controller
@RequestMapping("/common")
public class CommonController { /**
* @param dt dt的class类型决定使用哪个Convert
* @return list的json集合
*/
@RequestMapping(value="/testConvert",method={RequestMethod.GET,RequestMethod.POST})
@ResponseBody
public static Object testConvert(@RequestParam(value = "date") Timestamp dt){
List<Entity> list = new ArrayList<Entity>();
Entity e = new Entity();
e.setId("id1");
e.setBirth(dt.getTime()+"");
list.add(e);
return list;
}
}

测试

spring mvc会自动实现前端传一个对象的json会自动封装到实体对象里。实体的字段也会用到上面的convert配置转换。

Spring MVC处理参数Convert的更多相关文章

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

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

  2. Spring MVC接收参数(Map,List,JSON,Date,2个Bean)(记录一次面试惨状)

    题目Spring MVC 接收参数 MapListDate2个BeanJSON Spring MVC接收参数 -Map Spring MVC接收参数 -List Spring MVC接收参数 -dat ...

  3. Spring MVC请求参数绑定 自定义类型转化 和获取原声带额servlet request response信息

    首先还在我们的框架的基础上建立文件 在domian下建立Account实体类 import org.springframework.stereotype.Controller; import org. ...

  4. spring mvc 复杂参数注入

    过了这么久,又重新把博客拾起来了 来上海工作也已经有将近两周的时间了, 今天在整理项目的时候,遇到了一个关于参数注入的问题 背景: 我的开发前台用的是extjs4,在对后台spring mvc提交表单 ...

  5. Spring MVC温故而知新 – 参数绑定、转发与重定向、异常处理、拦截器

    请求参数绑定 当用户发送请求时,根据Spring MVC的请求处理流程,前端控制器会请求处理器映射器返回一个处理器,然后请求处理器适配器之心相应的处理器,此时处理器映射器会调用Spring Mvc 提 ...

  6. Spring MVC请求参数绑定

    所谓请求参数绑定,就是在控制器方法中,将请求参数绑定到方法参数上 @RequestParam 绑定单个请求参数到方法参数上 @RequestParam("id") Integer ...

  7. spring mvc给参数起别名

    需求: 将http报文请求(保护body和url)中的参数传递给Controller时支持使用别名. 举例: 下面两条请求报文的结果是一致的. http://example.com/foo?jobTy ...

  8. Spring MVC Action参数类型 List集合类型(简单案例)

    题目:定义一个员工实体(Employee),实现批量添加员工功能,在表单中可以一次添加多个员工,数据可以不持久化 1,新建一个项目 2, 然后选择Maven框架选择 maven-archetype-w ...

  9. Spring Mvc 传递参数要controller出现了400,日期参数全局处理,格式化yyyy-MM-dd 和yyyy-MM-dd HH:mm:ss

    描述:今天做一个业务操作的时候,ajax传递参数要controller出现了400,前后台都没有报错. 问题:springmvc 在接收日期类型参数时,如不做特殊处理 会出现400语法格式错误 解决: ...

随机推荐

  1. requests---requests简介

    在做接口测试的时候都会用到很多工具,如postman.jmeter.soupUI等工具,除了这些工具外,我们也可以用python的第3方库requests来做接口测试. request简介 reque ...

  2. LNK2001 无法解析的外部符号 __imp__CameraCreateSettingPage@24

    用VS2017,Release X86进行编译时显示如下错误: 1>CWDMDlg.obj : error LNK2001: 无法解析的外部符号 __imp__CameraGetImageBuf ...

  3. 201871010109-胡欢欢《面向对象程序设计(java)》第十一周学习总结

    项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://www.cnblogs.com/nwnu-daizh/p ...

  4. Comet OJ 计算机(computer)

    Comet OJ 计算机(computer) 题目传送门 题目描述 小 X 有一台奇怪的计算机. 这台计算机首先会读入一个正整数 nn,然后生成一个包含 nn 个数的序列 aa. 一开始 a_i(1 ...

  5. Ubuntu使用snap安装常用软件

    1,snap简介 什么是snap,snap是一种全新的软件包管理方式,它类似一个容器拥有一个应用程序所有的文件和库,各个应用程序之间完全独立.所以使用snap包的好处就是它解决了应用程序之间的依赖问题 ...

  6. 【oracle】ceil函数 返回值 (大于参数的最小整数)

    SELECT CEIL(15.8) FROM DUAL;==========16 SELECT CEIL(-15.8) FROM DUAL;==========-15

  7. ajax与重定向

    网上有不少说法ajax的请求url浏览器不会重定向的说法是片面的,正常是这样的: 当服务器将302响应发给浏览器时,浏览器并不是直接进行ajax回调处理,而是先执行302重定向——从Response ...

  8. web服务器获取请求客户端真实地址的方法

    服务器获取客户端或者网页的请求,获取IP时需要注意,因为一个请求到达服务器之前,一般都会经过一层或者多层代理服务器,比如反向代理服务器将http://192.168.1.10:port/ 的URL反向 ...

  9. 搭建 Web 网站常用技能

    为软件创建专用数据库及其账号 create database if not exists gitea default charset = utf8mb4; grant ALL PRIVILEGES o ...

  10. jquery.pagination.js的使用

    html页面 //要显示内容表格 <table id="gifts"> <tr class='first'> <th>时间</th> ...