属性编辑器未在PropertyEditorManager中注册?

举报
穆雄雄 发表于 2022/12/10 20:20:41 2022/12/10
【摘要】 ​编辑大家好,我是雄雄,欢迎关注微信公众号【雄雄的小课堂】。前言好不容易将代码都写完了,结果一运行,报错!!HTTP Status 500 - Unable to convert string “${book.btime}” to class “java.util.Date” for attribute “value”: Property Editor not registered with...

​编辑

大家好,我是雄雄,欢迎关注微信公众号【雄雄的小课堂】。

前言

好不容易将代码都写完了,结果一运行,报错!!HTTP Status 500 - Unable to convert string “${book.btime}” to class “java.util.Date” for attribute “value”: Property Editor not registered with the PropertyEditorManager。

其实这个错误从字面意思看的话,也很简单,好像是btime这个字段的日期问题。

01

发现Bug

原来写的项目没有用maven,是可以正常运行的,在用maven搭建ssm框架做案例的时候,代码还是原来的代码,但是运行的时候报错,错误信息为:

HTTP Status 500 - Unable to convert string "${book.btime}" to class
 "java.util.Date" for attribute "value": Property Editor not registered with the PropertyEditorManager。

出错之后先看了看idea的控制台:

​编辑

发现是没有问题的(其实直接分析错误进行,只是习惯了报错就去看控制台……),那就是前端的问题,进一步分析错误,是格式转换的异常。无法将字符串“ $ {book.btime}”转换为属性“值”的类“ java.util.Date”,

02

解决Bug

问题知道了,原因也知道了,那么怎么解决呢?只需要在当前页面(index.jsp)中前面加入一行代码:

<%@ page isELIgnored="false"%>

<%@ page isELIgnored=“false”%> 的作用是什么呢?

原来,在每个JSP中都可以指定该JSP是否使用EL。在page directive中的isELIgnored属性用来指定是否忽略。格式为:

%@ page isELIgnored="true|false"%

如果设定为true,也就是EL被忽略,那么JSP中的表达式被当成字符串处理。比如我上面的字符串想要以日期类型来显示,当然转换错误,而isELIgnored="false" 时把${book.btime}解析成日期格式再显示出来,故正常显示,问题解决。

jsp技术毕竟很老了,用起来诸多不便,后期还是往前后端分离的部分转吧,那是真方便。

​编辑

今天的分享就到这里啦~

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。