spring mvc使用@InitBinder 标签将日期格式字符串转换成Timestamp类型
在SpringMVC中,可以采用实体类来自动绑定表单传递过来的参数,但需要注意的是,若实体类属性是Date或Timestamp类型的话,SpringMVC将无法自动绑定,会产生400错误,所以需要我们自定义转换规则。
方法:
1.定义转换规则:创建编辑器类,继承自PropertiesEditor(由Spring提供)
import java.sql.Timestamp;
import org.springframework.beans.propertyeditors.PropertiesEditor;
public class TimestampEditor extends PropertiesEditor {
@Override
public void setAsText(String text) throws IllegalArgumentException {
//note:只能将 yyyy-MM-dd HH:mm:ss或者yyyy-M-d HH:mm:ss格式的字符串进行转换
yyyy-MM-dd是不可以的
setValue(Timestamp.valueOf(text));
}
@Override
public String getAsText() {
return getValue().toString();
}
}
2.应用转换规则:在Controller中添加initBinder方法,并在方法上添加Spring提供的@InitBinder注解
import org.springframework.web.bind.annotation.InitBinder;
@Controller
public class WebController {
@RequestMapping("/test.do")
@ResponseBody
public String test(User u){ //note:User为接收参数的实体类
return "OK";
}
@InitBinder
public void initBinder(WebDataBinder binder){
binder.registerCustomEditor(Timestamp.class, new TimestampEditor());
}
}
完成上述两个步骤以后,当请求参数传递过来时,Spring就会先调用initBinder方法对请求参数进行转换,然后再将参数绑定到实体类对象上。
spring mvc使用@InitBinder 标签将日期格式字符串转换成Timestamp类型相关推荐
- spring mvc使用@InitBinder 标签对表单数据绑定
在SpringMVC中,bean中定义了Date,double等类型,如果没有做任何处理的话,日期以及double都无法绑定. 解决的办法就是使用spring mvc提供的@InitBinder标签 ...
- PHP:时间戳time和日期格式字符串转换date
1.时间戳转字符串 // 获取当前时间的字符串格式 var_dump(date('Y-m-d H:i:s')); // string(19) "2021-11-25 17:42:28&quo ...
- 前端将后端返回的富文本格式字符串转换成word下载
需要用到三个库 npm install html-docx-js -S npm install file-saver -S npm install dayjs -S 或 pnpm install ht ...
- java时间戳龙_Java时间戳与日期格式字符串的互转
Java时间戳与日期格式字符串的互转 import java.text.SimpleDateFormat; import java.util.Date; public class DateUtil { ...
- java时间戳转换日期格式_Java时间戳与日期格式字符串的互转
1 import java.text.SimpleDateFormat; 2 import java.util.Date; 3 4 public class DateUtil { 5 /** 6 * ...
- java自定义标签 map_基于Spring MVC的自定义标签Tag
基于Spring MVC的自定义标签Tag 1.环境准备 本次小项目基于Spring MVC进行测试呈现,项目依赖的jar文件列表如下: 2.搭建SpringMVC Spring MVC环境最关键的两 ...
- (继续搬)struts日期格式的转换以及hibernate中session的关闭在xml中的配置
1.struts日期格式的转换package cn.sxx.utils;import java.text.ParseException; import java.text.SimpleDateForm ...
- php用什么服务器系统时间格式,php中时间戳和日期格式的转换
一,PHP时间戳函数获取指定日期的unix时间戳 strtotime("2009-1-22″) 示例如下: echo strtotime("2009-1-22″) 结果:12325 ...
- C#常用日期格式处理转换
转!!!!!C#常用日期格式处理转换[C#日期格式转换大全] 2011-04-20 13:39 有时候我们要对时间进行转换,达到不同的显示效果 默认格式为:2005-6-6 14:33:34 如果要换 ...
最新文章
- 继国美处罚“摸鱼”员工后,网易出品之摸鱼计算器...
- jumpserver v0.4.0 基于 CenOS7 的安装详解
- WN7 上IIS7运行asp+access网站出现错误: ADODB.Connection 错误 '800a0e7a'未找到提供程序。该程序可能未正确安装
- java分层窗格_java 简洁的分层实现
- centos 多台 文件夹同步_win10+OneDrive,同步备份文件最佳搭档,这样关闭自动备份通知...
- 以一定概率执行某段代码(Python实现)
- 华为笔试题:词频统计
- Oracle下载和安装教程
- php网上花店管理系统的论文,网上花店管理系统
- MATLAB数字信号处理系统GUI实现
- 无涯社区分享:链网+DID,区块链应用破局的关键 | ArcBlock 活动
- NLP - ngram - N元语言模型 python 实现
- Java随机产生昵称
- 创投日报:3月28日收录投融资项目19起
- 微芯片植入大脑可保存人们的大脑记忆内容
- IO模型(阻塞,非阻塞,多路复用......)
- jQuery遍历集合
- 【Google Play】创建和管理内部测试版本 ( 创建内部测试版本 | 检查并发布内部测试版本 )
- python写的简单游戏-1小球碰壁弹跳
- 纳米结构中的磁斯格明子
热门文章
- [MtOI2019]永夜的报应 题解
- 影子经纪人再次归来,公开密码解密更多NSA黑客工具!连中国运营商都被入侵过?...
- python crypto模块详解_python - ImportError:没有名为Crypto.Ciph的模块
- HTML <head> 元素
- JVM调优参数与常用调优命令
- java callable接口_Java Callable接口实现细节详解
- linux下eclipse汉化包,Archlinux KDE 添加中文语言包
- Apollo搭建与实战(分布式部署)
- Jmeter接口测试之响应断言
- eclipse 卸载 codemix