SpringMVC + Spring + MyBatis 学习笔记:提交数据遭遇日期格式转化报400错误解决方法

JavaWeb之Springboot原理与实战 启动SpringBoot项目的主入口程序 HelloController.java文件内容如下: 在浏览器输入localhost:8888/hello 三、Springboot3+MyBatis+Swagger整合实战 项目结构 数据库表结构 阅读详情

系统:WIN8.1

数据库:Oracle 11GR2

开发工具:MyEclipse 8.6

框架:Spring3.2.9、SpringMVC3.2.9、MyBatis3.2.8

使用SpringMVC开发的时候,页面如果有日期格式的数据,后台接受也是java.util.Date,则报告400错误 。下面是解决方案的演示示例:

这个是实体类,里面createDate就是java.util.Date类型

 1 import java.util.Date;
 2 
 3 public class User {
 4 
 5     private int userId;
 6     private String userName;
 7     private Date createDate;
 8     
 9     public User() {}
10 
11     public User(int userId, String userName, Date createDate) {
12         super();
13         this.userId = userId;
14         this.userName = userName;
15         this.createDate = createDate;
16     }
17 
18     public User(String userName, Date createDate) {
19         super();
20         this.userName = userName;
21         this.createDate = createDate;
22     }
23 
24     public int getUserId() {
25         return userId;
26     }
27 
28     public void setUserId(int userId) {
29         this.userId = userId;
30     }
31 
32     public String getUserName() {
33         return userName;
34     }
35 
36     public void setUserName(String userName) {
37         this.userName = userName;
38     }
39 
40     public Date getCreateDate() {
41         return createDate;
42     }
43 
44     public void setCreateDate(Date createDate) {
45         this.createDate = createDate;
46     }
47 
48     @Override
49     public String toString() {
50         return "User [createDate=" + createDate + ", userId=" + userId
51                 + ", userName=" + userName + "]";
52     }
53 }

页面代码

1   <form action="regUser" method="post">
2         userName:<input type="text" name="userName"/><br>
3         createDate:<input type="text" name="createDate"/><br>
4         double类型:<input type="text" name="dd"/><br>
5         <input type="submit" value="注册">
6     </form>

因为对于原生基本类型的form表单绑定,会出错。需要指定具体的类型编辑器。用法如下:首先在BaseController中增加方法initBinder,并使用注解@InitBinder标注,那么spring mvc在绑定表单之前,都会先注册这些编辑器。剩下的控制器都继承该类。CustomDateEditor spring自己已经提供了。代码如下:

 1 import java.text.SimpleDateFormat;
 2 import java.util.Date;
 3 
 4 import org.springframework.beans.propertyeditors.CustomDateEditor;
 5 import org.springframework.stereotype.Controller;
 6 import org.springframework.web.bind.WebDataBinder;
 7 import org.springframework.web.bind.annotation.InitBinder;
 8 
 9 import sun.beans.editors.DoubleEditor;
10 import sun.beans.editors.FloatEditor;
11 import sun.beans.editors.IntEditor;
12 import sun.beans.editors.LongEditor;
13 
14 @Controller
15 public class BaseController {
16 
17     @InitBinder    
18     public void initBinder(WebDataBinder binder) {    
19 
20         binder.registerCustomEditor(Date.class, new CustomDateEditor(new SimpleDateFormat("yyyy-MM-dd"), true)); 
21         binder.registerCustomEditor(int.class, new IntEditor());
22         binder.registerCustomEditor(long.class, new LongEditor());  
23         binder.registerCustomEditor(double.class, new DoubleEditor());  
24         binder.registerCustomEditor(float.class, new FloatEditor());  
25     }
26     
27     
28 }

上面的代码不仅仅有日期格式的编辑器,还有基础类型的编辑器,这样就解决了SpringMVC中controller方法接受参数的时候,基础类型报错的问题了。

下面是测试用代码,继承BaseController之后就可以直接运行了。接受的参数有实体类和基础类型。

 1 import org.springframework.stereotype.Controller;
 2 import org.springframework.web.bind.annotation.RequestMapping;
 3 
 4 import com.kickstarter.entity.User;
 5 
 6 @Controller("userController")
 7 public class UserController extends BaseController{
 8 
 9     @RequestMapping(value="regUser")
10     public String dateTest(User user , double dd){
11         
12         System.out.println( user.toString() );
13         System.out.println( dd );
14         return "index"; 
15     }
16 }

以上,问题解决。

基于TL431与MOSFET的高效过压保护电路设计详解 本文详细解析了基于TL431与MOSFET的高效过压保护电路设计。通过TL431精准监测电压,驱动MOSFET作为主开关,实现快速可靠的电源保护。文章涵盖电路原理、参数计算、性能优化及实战调试要点,为电子设备提供了一套经典且成本低廉的过压保护解决方案。 阅读详情

相关推荐

前馈神经网络求解XOR问题

摘要 前馈神经网络是一种最简单的神经网络,各神经元分层排列。每个神经元只与前一层的神经元相连。接收前一层的输出,并输出给下一层.各层之间没有反馈。是目前应用最广泛、发展最迅速的人工神经网络之一。研究从20世纪60年代开始,目前理论研究和实际应用达到了很高的水平[1]。本节通过设计包含输入层、一个隐含层和输出层的前馈神经网络,实现XOR运算,并基于计算数据或实验数据分析隐含层决策面的特点,进而总结前馈神经网络隐含层的作用。 1.1 神经网络结构设计 1.1.1 XOR问题描述 ...

sinat_28178805的博客 2359

Springboot错误解决:Oracle Timestamp转Date异常

Springboot错误解决:Oracle Timestamp转Date异常1. 创建自定义Handler类处理时间格式2. 在配置中指向该类所在文件夹 1. 创建自定义Handler类处理时间格式 @MappedTypes({Object.class}) @MappedJdbcTypes(value = {JdbcType.TIMESTAMP}) public class MyObjectTypeHandler extends BaseTypeHandler<Object> { pu

青城山小道士的博客 1188

cvtColor +内存泄漏

题目不知道怎么取,因为cvtColor并没有产生内存泄漏,但是我由于没有正确使用cvtColor而出现了内存泄漏的问题,所以暂且以cvtColor+内存泄漏为题 1.应用背景 项目中用到cvtColor的地方是需要将灰度图转为3通道的彩色图(实际上转换后仍然为灰色的,但是电脑认为的是3通道的彩色图了) 因此需要用到以下语句 cvtColor(src_img, cvMtxRGB, C

smilebluesky的专栏 6059

5. springmvc 400错误之--timestamp引起

springmvc 400错误之--timestamp引起 springmvc 400错误.参数类型不对,或有空值就会出这种错误. 主要是timestamp类型引起 :8080/teasoft/orderHistory/edit:1 Failed to load resource: the server responded with a status of 400 (Bad Reques...

abckingaa的博客 975

以太网物理层协议整理(2)-万兆以太网

在万兆以太网标准化过程中,IEEE和10GEA(万兆以太网联盟)是两个最重要的组织。 万兆以太网标准和规范都比较繁多,在标准方面,首先有2002年的IEEE 802.3ae,后来也不断有新的万兆以太网规范推出,如2006年的IEEE 802.3an标准(10GBase-T)就推出了基于双绞铜线的万兆以太网规范,同样的IEEE 802.3aq标准推出了基于光纤的10GBase-LRM;2007年的

NowOrNever 3万+

问题:dpkg-deb: error: paste subprocess was killed by signal (Broken pipe)

 1. 问题:Ubuntu安装软件的过程中出现依赖项的问题 “E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).” 按照指示执行如下两条命令都没有解决问题。 sudo apt-get -f install sudo apt-get --fix-broken ...

gloria_littlechi的博客 2万+

oracle 报错sql日志,技术分享图片 sql (mybatis): 技术分享图片 原因: 经测试,oracle 数据库字段为 Data 型的并不会报错,只有 timestamp 类型会报错。...

后台报错:26-Sep-2018 22:18:08.209 WARNING [http-apr-8080-exec-8] org.springframework.web.servlet.mvc.support.DefaultHandlerExceptionResolver.handleHttpMessageNotWritable Failed to write HTTP message: org....

weixin_34688966的博客 393

手把手教你学simulink(8.3)--实例:基于 Simulink 的自动驾驶汽车速度控制系统设计与仿真

基于 Simulink 的自动驾驶汽车速度控制系统设计与仿真。

MHD0815的博客 1210

springcloud-alibaba学习笔记(五)seata使用(当oracle中使用TIMESTAMP类型导致undolog序列化失败)

场景 使用seata + oracle 实现分布式事务 ,当表中存在一个字段使用的是TIMESTAMP类型,那么在开启分布式事务的时候jackson会报出一个序列化失败的错误 报错信息 2021-02-28 20:43:43.358 ERROR 12964 — [nio-8865-exec-2] i.s.r.d.u.parser.JacksonUndoLogParser : json encode exception, No serializer found for class java.io.B

sssdal19995的博客 2255

YOLOv8极速瘦身实战:LAMP剪枝让模型又快又准

一个庞大的模型虽然强大,但在实际部署,尤其是资源受限的边缘设备(如无人机、移动电话、嵌入式系统)上,却面临着严峻的挑战:高昂的内存占用、巨大的计算量以及随之而来的高延迟和高能耗。本教程从LAMP剪枝的深刻理论出发,详细解释了它如何通过最小化最坏情况下的L2失真,并借助巧妙的数学简化,最终推导出一种高效、无超参数、层自适应的剪枝策略。它如同为臃肿的模型进行一次精准的“瘦身手术”,通过移除网络中冗余或不重要的权重、神经元甚至整个结构,来显著降低模型的参数量和计算量(FLOPs),从而实现推理加速和资源节约。

FJN110的博客 259

【Unity实战100例】Unity循环UI界面切换卡片功能

功能包括:可以设置半径,高度,速度,元素数量用户可以根据自己的实际需求接入 制作思路:创建每个元素对应的虚拟点,通过旋转管理这些虚拟点,然后把旋转信息和位置信息同步给实际的元素

纯技术流日常开发商业开发记录总结等 7718

springMVC 页面传入日期报错问题处理:org.springframework.validation.BindException: org.springframework.validation.

1 springMVC 页面传入日期报错问题处理:网上查了很多资料,大多都是很相似的,但是并没有解决我的问题,在此发一个简单的方法,仅供参考: 2 报错日志 org.springframework.validation.BindException: org.springframework.validation.BeanPropertyBindingResult: 2 errors 3 解决方式: ...

qq_40052579的博客 832

WorkBuddy 连接百度网盘:能查能上传,但别指望 AI 帮你下载

本文介绍了如何通过WorkBuddy连接百度网盘实现文件管理功能。首先需要在百度开放平台创建应用并获取AppKey等凭证,然后通过拼接授权URL获取Access Token并填入WorkBuddy。实际测试表明,该连接器支持查看目录结构、搜索文件及上传文档,但无法实现文件下载和创建分享链接,原因是百度网盘MCP Server未提供相关接口。使用前需明确功能限制,该方案适合需要远程查阅网盘内容但不涉及下载的场景。

u011186532的专栏 1994

SpringMVC + Spring + MyBatis 学习笔记:提交数据遭遇基础类型和日期类型报400错误解决方法

使用SpringMVC开发的时候,页面如果有日期格式的数据,后台接受也是java.util.Date,则报告400错误 。下面是解决方案的演示示例:   这个是实体类,里面createDate就是java.util.Date类型 1 import java.util.Date; 2 3 public class User { 4 5 private int

d124939312的博客 320

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

SpringMVC + Spring + MyBatis 学习笔记:提交数据遭遇基础类型和日期类型报400错误解决方法...

系统:WIN7 数据库:mysql 开发工具:Eclipse 框架:Spring3.2.9、SpringMVC3.2.9、MyBatis3.2.8 使用SpringMVC开发的时候,页面如果有日期格式的数据,后台接受也是java.util.Date,则报告400错误。 在controller使用对象来接收前台页面的date数据类型时报400错误 下面是解决方案的演示示例: ...

weixin_30553837的博客 198

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

关于springmvc属性date类型接收报400错误的处理

1.在Date类型属性上使用注解@DateTimeFormat 缺点:需要在每个属性上需要添加注解,接收到的格式是固定的 2.配置全局的处理方式,时间格式可以随意定义,使用spring技术注解@Component并且实现Converter<String, Date>接口重写里面的convert方法。 import org.springframework.core.conv...

laiyuhangaini的博客 900

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

全网最强SpringMVC教程 | 万字长文爆肝SpringMVC(一)

本文介绍了SpringMVC框架的基本概念和入门案例实现。主要内容包括: SpringMVC概述 基于MVC设计模式的轻量级Web框架 主要处理请求接收、业务转发和响应数据转换 相比Servlet更简单灵活 入门案例实现步骤 创建Maven web项目 导入SpringMVC和Servlet依赖 创建SpringMVC配置类 编写Controller处理请求 配置DispatcherServlet替代web.xml 关键点说明 使用@Controller注解标记控制器类 @RequestMapping定义请

qq_45832461的博客 1146

springMVC开发手册V2.0

今日内容看到SpringMVC这个名字我们会发现其中包含Spring,那么SpringMVC和Spring之间的会有关系么?答案是肯定有,SpringMVC隶属于Spring,是Spring技术中的一部分。那么SpringMVC到底是用来做什么的呢?那么既然已经有了Servlet为什么还需要花时间再学习一个SpringMVC技术?要回答这个问题,我们就需要搞清楚SpringMVC与Servlet相比,有什么优势:框架我们都知道是用来简化开发的,所以SpringMVC与Servlet相比,开发起来更简单快捷,

AlbenXie的博客 160

关于jxl导出

不知道为什么,他说不能转载,看了下写的源代码我也懒得改。没什么大的需求变动,懒得改。只不过改了我们的一些不规范,不合理的方法和大家唠叨唠叨。 首先是项目,项目是spring4.X,mybatis5.X,jdk1.8的maven项目,暂时没有那么多条条框框复杂酷炫的功能,不过框架不是我弄得,很多问题需发现的时候晚了,竟可能的就是打补丁,打补丁,打补丁。。。 问题是,有些代码别人在用改起来项目就整

Devil_May_Crying的博客 694

SpringBoot中统一返回数据类型+全局异常处理机制

前置认识 所有的异常都需要用controller返回给用户进行提示 SpringBoot有默认全局异常处理机制【BasicErrorController】 浏览器会返回项目下error????/4xx.html【在request域中也会有以下json数据】; 非浏览器返回json: {"timestamp":"2021-05-06T13:27:10.089+00:00", "status":500, "error":"Internal Server Error", "trace":"java.lang.

weixin_47251999的博客 792

SpringMVC日期类型转换问题三大处理方法归纳

前言 我们在SpringMVC开发中,可能遇到比较多的问题就是前台与后台实体类之间日期转换处理的问题了,说问题也不大,但很多人开发中经常会遇到这个问题,有时很令人头疼,有时间问题暴露的不是很明显,然后逐渐对问题进行跟踪,会发现是日期类型转换失败“映射”不到对应的持久类的日期属性上造成的,由此我还特意写过一篇博文:SpringMVC中出现" 400 Bad Request "错误(用@Res...

iteye_6274的博客 1457

解决SpringMVC Controller中接受日期格式发生400错误

解决SpringMVC Controller中接受日期格式发生400错误   用户中有生日(Date)属性,用户注册的时候,选择日期即可,然后提交表单,可SpringMVC报错,意思是不能把字符串转为日期类型的。如果是strtus的话,压根不是问题,怎么到用SpringMVC就不行了呢,可能有好的解决办法 方法一:实体类中加日期格式化注解 @DateTimeFormat(patte...

wangxueqing52的博客 4315

springmvc form表单提交报400错误

springmvc form表单提交报400错误,出现400错误的原因及解决方法: 原因: 在SpringMVC中的Action中处理前台ajax请求传过来的json数据直接转成对应的实体类时出错:400 Bad Request,后台也不报错,400指的的是请求无效(请求有语法问题或者不能满足请求)。 1:一般最常见的就是后台的实体类bean与前台穿过的类型不匹配,如你的javabean中有

Asan 3万+

spring mvc前台时间字符串到后台Date的转换

无意中发现对于时间字符串转Date类,根本不用自己去写转换类,spring mvc已经实现了该功能,还是基于注解的,轻松省事,使用org.springframework.format.support.FormattingConversionServiceFactoryBean  之后,只要在vo里加注解就行了  Java代码   @DateTimeFormat(patte

wangshfa的专栏 1万+
上一篇: freemarker报错:Tip: If the failing expression is known to be legally null/missing, either specify a de
下一篇: java.lang.IllegalStateException: Web app root system property already set to different value: 'webap
Java_Mr_Zheng
博客等级 码龄11年 18粉丝 20原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值