springboot使用jpa进行数据库开发在JavaBean封装Date的问题

今天在使用前端向后端传递对象时出现了一个问题,对象内部封装了Date,导致前端传回的string串无法强制转换为对应的Date类型。很恼火。直到我看到有一篇博客里面讲:

Java前端如何发送date类型的参数给后端_bryangp的博客-CSDN博客_前端传date类型首先阐述一下常见的几种时间类型的区别。java.util.Date日期格式为:年月日时分秒java.sql.Date日期格式为:年月日java.sql.Time日期格式为:时分秒java.sql.Timestamp日期格式为:年月日时分秒纳秒(毫微秒)前段传时间类型的参数给后端,一般有两种传参手段,GET传参和POST传参。GET传参时,前段传过来的是一个string的字符串,后端用string类型接接收后需要做相关处理。处理代码如下: String str="2021-5-21https://blog.csdn.net/bryangp/article/details/116996896

Java提交表单时正确的接收date类型参数_空白格Martian的博客-CSDN博客在开发过程中,当我们提交的表单中有date时间类型的参数时,所提交的表单也许就会不成功,服务器无法处理该请求,浏览器报400错误-请求无效。原因:出现这个请求无效报错说明请求没有进入到后台服务里;前端提交数据的字段名称或者是字段类型和后台的实体类不一致,或前端提交的参数跟后台需要的参数个数不一致,导致无法封装。我报400错误的原因大部分就是因为提交的请求中有date类型的参数所导致的。若实体类中导入的是java.sql.Date包,那提交date类型参数时也许就能够封装不会报错;但如果实体类https://blog.csdn.net/XjMartian/article/details/107352253常见的几种时间类型的区别。

java.util.Date日期格式为:年月日时分秒
java.sql.Date日期格式为:年月日
java.sql.Time日期格式为:时分秒
java.sql.Timestamp日期格式为:年月日时分秒纳秒(毫微秒)

我注意到

在开发过程中,当我们提交的表单中有date时间类型的参数时,所提交的表单也许就会不成功,服务器无法处理该请求,浏览器报400错误-请求无效。
原因:

出现这个请求无效报错说明请求没有进入到后台服务里;
前端提交数据的字段名称或者是字段类型和后台的实体类不一致,或前端提交的参数跟后台需要的参数个数不一致,导致无法封装。
我报400错误的原因大部分就是因为提交的请求中有date类型的参数所导致的。

若实体类中导入的是java.sql.Date包,那提交date类型参数时也许就能够封装不会报错;
但如果实体类中导入的是java.util.Date包,那提交date类型参数时就会报错,请求无效,无法封装。(java.sql.Date是java.util.Date的子类)

人家也给了解决方法

Java提交表单时正确的接收date类型参数_空白格Martian的博客-CSDN博客在开发过程中,当我们提交的表单中有date时间类型的参数时,所提交的表单也许就会不成功,服务器无法处理该请求,浏览器报400错误-请求无效。原因:出现这个请求无效报错说明请求没有进入到后台服务里;前端提交数据的字段名称或者是字段类型和后台的实体类不一致,或前端提交的参数跟后台需要的参数个数不一致,导致无法封装。我报400错误的原因大部分就是因为提交的请求中有date类型的参数所导致的。若实体类中导入的是java.sql.Date包,那提交date类型参数时也许就能够封装不会报错;但如果实体类https://blog.csdn.net/XjMartian/article/details/107352253

但看看我自己的代码,实际上只要将java.util.Date替换为java.sql.Date就可以传递Date了。

但还有个问题就是换成java.sql.Date后@Temporal这个注解就不支持了。


 

你可能感兴趣的:(JPA,java)