今天写作业的时候做到一半运行服务器的时候报以下错误,经过查阅和修改,将结果分享给大家。
这个错误在我用实体类进行传参的时候并没有出现,但是当我换成简单参数来进行传参就发生了错误,所以大概率就是传参的类型出现的错误
首先,这是我的实体类(注意import一定是java.util.Date,如果是java.sql.Date会报错)
其次,由于从浏览器界面传过来的参数都是字符串形式,所以需要用String类型来接收,同时springmvc默认不支持String到Date的转换,所以需要加上@DateTimeFormat注解,然后就可以解决这个问题啦!
最后,如果使用Model 类型进行参数保存传递,需要在实体类中使用java.sql.Date而不是java.util.Date,否则也会报相同的错误
所以,最后可以稍微总结一下:
在Spring MVC中,使用Model
类型来保存参数是为了将这些参数传递给视图层进行渲染。当我们将日期参数保存到Model
中时,通常会使用java.sql.Date
而不是java.util.Date
的主要原因是与数据库的兼容性。
在数据库中,日期类型通常使用SQL日期来表示。java.sql.Date
是用于在Java中表示SQL日期的特殊日期类,它只包含年、月和日部分,并且继承自java.util.Date
。
当我们从数据库中检索日期数据时,通常会使用java.sql.Date
。为了保持与数据库的兼容性,我们在将参数保存到Model
中时会使用java.sql.Date
。这样,当参数传递给视图层时,可以更容易地处理和渲染日期数据。
总结一下,在实体类中和控制器方法参数中,我们都应该使用java.util.Date
来表示日期或时间数据。只有在将参数保存到Model
或从数据库中检索日期数据时,我们才会使用java.sql.Date