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. Transformer---GPT模型

    一.GPT(Generative Pre-Training) GPT-2的模型非常巨大,它其实是Transformer的Decoder.GPT-2是Transformer的Decoder部分,输入一个 ...

  2. luogu P1904 天际线

    分析 都知道是从左向右扫描 可是该维护什么,扫描什么? 注意想想怎么输出, 实际上它要的输出就是图形的轮廓,即每个突出块的左上节点的x,y 所以说, 我们可以把扫描线扫进的楼房放入线段树,扫出的楼房删 ...

  3. 2018710101110-李华《面向对象程序设计(java)》第十二周学习总结

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

  4. shell-处理用户输入

    命令行参数 #./admin 10 30 读取参数 [root@localhost scrips]# vi test28.sh #!/bin/bashfactorial=1for ((number=1 ...

  5. zzXDL

        Pull requestsIssues Marketplace Explore             Learn Git and GitHub without any code! Using ...

  6. LG2598/BZOJ1412 「ZJOI2009」狼和羊的故事 最小割

    问题描述 LG2598 BZOJ1412 题解 看到要把狼和羊两个物种分开 自然想到最小割. 发现\((x,y)\)可以向上下左右走以获得贡献,所以建边:\((x,y),(x-1,y)\),\((x, ...

  7. 实验1 C语言开发环境和数据类型、运算符、表达式

    #include <stdio.h> int main () { int x; printf("输入一个整数:\n"); scanf("%d",&a ...

  8. Web协议详解与抓包实战:HTTP1协议-HTTP 响应行(3)

    一.HTTP 响应行 二.响应码分类:1xx 三.响应码分类: 2xx 1. 201 Created: 有新资源在服务器端被成功创建 2.207 Multi-Status:RFC4918 ,在 WEB ...

  9. Visual Studio 2019(VS2019)下载极慢的问题

    今天给新电脑安装 vs2019,下载速度只有 TMD 10kb/s,实在忍无可忍,在经过了一系列的百度之后,找到解决方法. 具体方法很简单: 用站长工具查询了一下 download.visualstu ...

  10. LeetCode 485:连续最大1的个数 Max Consecutive Ones(python java)

    公众号:爱写bug 给定一个二进制数组, 计算其中最大连续1的个数. Given a binary array, find the maximum number of consecutive 1s i ...