描述:今天做一个业务操作的时候,ajax传递参数要controller出现了400,前后台都没有报错。

问题:springmvc 在接收日期类型参数时,如不做特殊处理 会出现400语法格式错误

解决:使用SpringMvc进行全局日期处理

案例如下:

1.Controller

/**
* 接收日期类型参数
* 注意:
* springmvc 在接收日期类型参数时,如不做特殊处理 会出现400语法格式错误
* 解决办法
* 1.全局日期处理
*
*/ @RequestMapping("/test")
public String test(Date birthday){
System.out.println(birthday);
return "index";
}

  

2.自定义类型转换规则

SpringMvc提供了Converter接口,它支持从一个Object转换为另一个Object

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date; import org.springframework.beans.propertyeditors.CustomDateEditor;
import org.springframework.core.convert.converter.Converter;
import org.springframework.web.bind.WebDataBinder;
import org.springframework.web.bind.support.WebBindingInitializer;
import org.springframework.web.context.request.WebRequest; /**
* 全局日期处理类
* Convert<T,S>
* 泛型T:代表客户端提交的参数 stringDate
* 泛型S:通过convert转换的类型
通过convert转换的类型
*/
public class DateConvert implements Converter<String, Date> { @Override
public Date convert(String stringDate) {
SimpleDateFormat simpleDateFormat =null;
if(stringDate.length()==10) {
simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
}
else if(stringDate.length()>10)
{
simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
}
try {
return simpleDateFormat.parse(stringDate);
} catch (ParseException e) {
e.printStackTrace();
}
return null;
} }

3.注册自定义的类型转换类

<mvc:annotation-driven conversion-service="conversionService">
<!-- 改写@ResponseBody的返回值, 此处禁用Jackson序列化空对象报异常的特性 --> <mvc:message-converters>
<bean
class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
<property name="objectMapper">
<bean class="com.cn.xf.common.ArcJacksonObjectMapper">
</bean>
</property>
<property name="supportedMediaTypes">
<list>
<value>text/plain;charset=UTF-8</value>
<value>application/json;charset=UTF-8</value>
</list>
</property>
</bean>
</mvc:message-converters> </mvc:annotation-driven> <!-- 第二步: 创建convertion-Service ,并注入dateConvert-->
<bean id="conversionService" class="org.springframework.format.support.FormattingConversionServiceFactoryBean">
<property name="converters">
<set>
<ref bean="dateConvert"/>
</set>
</property>
</bean>
<!-- 第一步: 创建自定义日期转换规则 -->
<bean id="dateConvert" class="com.cn.xf.common.DateConvert"/>

  

 

Spring Mvc 传递参数要controller出现了400,日期参数全局处理,格式化yyyy-MM-dd 和yyyy-MM-dd HH:mm:ss的更多相关文章

  1. spring mvc:实现给Controller函数传入list<pojo>参数

    [1]前端js调用示例: ...insertStatisData?statisDatas=[{'cid':'2','devId':'9003','deviceName':'测试名','endTime' ...

  2. Spring MVC 解读——@Autowired、@Controller、@Service从原理层面来分析

    目录(?)[+] Spring MVC 解读Autowired 一Autowired 二BeanPostProcessor 三磨刀砍柴 四Bean 工厂 五实例化与装配 六执行装配 七一切的开始   ...

  3. spring mvc:实现给Controller函数传入map参数

    [1]前端js调用示例: ...fillOrDiffer?inMapJson={"2016-08-31 0:00:00":0.1,"2016-08-31 0:15:00& ...

  4. Spring MVC学习笔记——给Controller和视图传值

    一.给Controller传值,值将显示在控制台 1.第一种:使用@RequestParam,改HelloController.java //RequestMapping表示用哪一个url来对应 @R ...

  5. 关于Spring mvc 一次请求Controller执行两次的问题

    资源路径为空时也会导致重复请求.< span style="background-image:url('');" >相关推荐< /span >,此时就会出现 ...

  6. Spring MVC中 提交表单报错400

    背景: 在写SpringMVC表单提交的代码的时,在最后点击提交的时候总是会出现400的错误 原因: 主要原因就是表单提交的数据和对应实体类的属性无法完全匹配 解决方案: 查看我们提交的数据是否完全和 ...

  7. Spring MVC基础知识整理➣View与Controller数据交互

    概述 Spring MVC是由View—Controller—Model组成,其中View和Controller的数据交互,成为了关注的核心点.MVC中,我们将View中的数据传递到Controlle ...

  8. Spring MVC 不能正常获取参数的值

    最近在开发时遇到一个非常奇怪的问题,在tomcat8中使用Spring MVC框架,在Controller中的方法参数无法正常获取到相应的值,将tomcat版本换成7.0就解决了. 记录以下解决过程, ...

  9. 如何对Spring MVC中的Controller进行单元测试

    对Controller进行单元测试是Spring框架原生就支持的能力,它可以模拟HTTP客户端发起对服务地址的请求,可以不用借助于诸如Postman这样的外部工具就能完成对接口的测试. 具体来讲,是由 ...

随机推荐

  1. Android开发——事件分发机制详解

    0. 前言   转载请注明出处:http://blog.csdn.net/seu_calvin/article/details/52566965 深入学习事件分发机制,是为了解决在Android开发中 ...

  2. Altium Designer之模块复用——设备图表符与Snippets

    Altium Designer中的设备图表符(Device Sheet Symbol)和Snippets是设计中模块复用的利器,下面简单介绍下这个两个功能的使用. 一.设备图表符(Device She ...

  3. pycharm的使用二

    一.pycharm设置参数 设置传入程序的参数:Alt+shift+F10 → Edit Configurations → 选中所需要进行设置参数的脚本 → Script parameters:输入设 ...

  4. 剑指Offer - 九度1515 - 打印1到最大的N位数

    剑指Offer - 九度1515 - 打印1到最大的N位数2013-11-30 01:11 题目描述: 给定一个数字N,打印从1到最大的N位数. 输入: 每个输入文件仅包含一组测试样例.对于每个测试案 ...

  5. 随笔 —— 门徒 & 无限恐怖

    门徒 忧思缠身,所为何物 不知何人,可免世俗 每每朝暮,心无释处 悲从中来,如泣如诉 仁者存世,满怀悲苦 逝者如斯,追还无路 上天无门,开怀捧腹 无路偏行,我行我素 无限恐怖 饥寒苦难谁知故,日日行路 ...

  6. pom中的resources设置

    Maven项目中一般都会把配置文件放到src/main/resources目录下,有时为了满足多个环境打包发布,可能会创建一些自定义目录来放置各环境的配置文件,如:src/main/profile/d ...

  7. Linux下samba编译与安装(Ubuntu和嵌入式linux)

    Ubuntu[i386-linux下安装过程] 1.安装samba $ sudo apt-get install samba $ sudo apt-get install smbfs (可选) $ s ...

  8. Java UDP的简单实例以及知识点简述

    UDP的实现 Java中实现UDP协议的两个类,分别是DatagramPacket数据包类以及DatagramSocket套接字类. 其与TCP协议实现不同的是: UDP的套接字DatagramSoc ...

  9. OpenFlow-Enaling innvation in Campus Networks

    OpenFlow-Enaling innvation in Campus Networks 出现问题 背景 Networks have become part of the critical infr ...

  10. 软考——(1)J2SE

    我们先从Java说起,简单的说,Java是一种面向对象的程序设计语言,可跨平台使用. 与之前学习的程序设计语言相比,最值得一提的就是Java的两种核心机制:Java虚拟机和垃圾回收机制. 1)虚拟机 ...