属性编辑器未在PropertyEditorManager中注册?
编辑
大家好,我是雄雄,欢迎关注微信公众号【雄雄的小课堂】。
前言
好不容易将代码都写完了,结果一运行,报错!!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技术毕竟很老了,用起来诸多不便,后期还是往前后端分离的部分转吧,那是真方便。
编辑
今天的分享就到这里啦~
- 点赞
- 收藏
- 关注作者
评论(0)