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. pdfium

    https://github.com/SubtleCow/AccessControlListsintheDOM/tree/4673d995e5614bc682cecd22f9b2919b2360273 ...

  2. Java8——Lambda表达式

    /* * 一.Lambda 表达式的基础语法:Java8中引入了一个新的操作符 "->" 该操作符称为箭头操作符或 Lambda 操作符 * 箭头操作符将 Lambda 表达 ...

  3. continue and break

    #1.continue终止当前循环开始下一次循环count = 0while count < 10: if count == 7: count = count +1 continue print ...

  4. 【转载】Innodb中的事务隔离级别和锁的关系

    前言 我们都知道事务的几种性质,数据库为了维护这些性质,尤其是一致性和隔离性,一般使用加锁这种方式.同时数据库又是个高并发的应用,同一时间会有大量的并发访问,如果加锁过度,会极大的降低并发处理能力.所 ...

  5. Docker常用安装(九)

    一.安装mysql 1.  docker hub上面查找mysql镜像 2. 拉取镜像 #获取mysql镜像 docker pull mysql:5.6 3. 运行容器 docker run -p 1 ...

  6. InfoQ一波文章:AdaSearch/JAX/TF_Serving/leon.bottou.org/Neural_ODE/NeurIPS_2018最佳论文

    和 Nested Partition 有相通之处? 伯克利提出 AdaSearch:一种用于自适应搜索的逐步消除方法 在机器学习领域的诸多任务当中,我们通常希望能够立足预先给定的固定数据集找出问题的答 ...

  7. <Graph> 133 399 223

    133. Clone Graph 我们也可以使用 BFS 来遍历图,使用队列 queue 进行辅助,还是需要一个 HashMap 来建立原图结点和克隆结点之间的映射.先克隆当前结点,然后建立映射,并加 ...

  8. nowcoder911L 最优子区间

    题目链接 思路 用\(f(i,j)\)表示前i个元素,以i为右端点,j为左端点时的答案. 用个"区间修改,单点查询"的线段树维护出第二维.在从左往右枚举i的过程中.将\([lst_ ...

  9. Codeforces Round #576 (Div. 1)

    Preface 闲来无事打打CF,就近找了场Div1打打 这场感觉偏简单,比赛时艹穿的人都不少,也没有3000+的题 两三个小时就搞完了吧(F用随机水过去了) A. MP3 题意不好理解,没用翻译看了 ...

  10. [LeetCode] 78. Subsets 子集合

    Given a set of distinct integers, S, return all possible subsets. Note: Elements in a subset must be ...