开发者社区> 问答> 正文

升级1.9后,页面上EL读取属性随机性缺失问题?报错

@JFinal 你好,想跟你请教个问题:

在做一个项目,是从1.8开始开发的;看到1.9的升级后,第一时间就更新了版本,但升级后,经常会出现一个查询出来的列表,就是List<Record>的结果集,返回到页面上,使用JSTL进行遍历输出的时候,有属性会报错提示字段不存在,但出错的字段是存在的,比如控制台显示如下信息:


com.jfinal.render.RenderException: org.apache.jasper.JasperException: javax.el.PropertyNotFoundException: The class 'com.jfinal.plugin.activerecord.Record' does not have the property 'status'.
	at com.jfinal.render.JspRender.render(JspRender.java:69)
	at com.jfinal.core.ActionHandler.handle(ActionHandler.java:92)
	at com.jfinal.core.JFinalFilter.doFilter(JFinalFilter.java:72)
	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1307)
	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:453)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137)
	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:560)
	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231)
	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1072)
	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:382)
	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193)
	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1006)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)
	at org.eclipse.jetty.server.Server.handle(Server.java:365)
	at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:485)
	at org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.java:926)
	at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:988)
	at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:635)
	at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235)
	at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82)
	at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:628)
	at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:52)
	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)
	at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)
	at java.lang.Thread.run(Thread.java:745)

而且我发现通常只有status这个字段会出现找不到的时候,我在处理数据库查询的返回结果集的时候,有取出该字段,去手动做代码转换中文,再将转换后的中文使用新的字段放入结果集中用于页面输出时显示中文状态信息;

还有就是通常这个问题,如果重启了服务器,问题就不出现了,而隔三差五的就会出来一样,这么不稳定的情况,肯定不行啊!


请 @JFinal 帮忙分析一下问题,是不是“status”这个字段是关键字;还是查询出来的结果集,不能进行读取某属性后,再放入新的属性,这样对结果集有进行手动操作后放回页面会出现属性缺失的情况?



展开
收起
爱吃鱼的程序员 2020-06-14 20:16:02 490 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    到家后我看看你的代码<divclass='ref'>

    引用来自“JFinal”的评论

    到家后我看看你的代码回复<aclass='referer'target='_blank'>@JFinal:设置成NULL后,没有报任何异常,因为这个问题是随机无规律出现的,这个设置NULL的结果我得再测试一段时间,如果一两天内都不出现这个问题的话,那就说明确实是status被读取出来后丢失了!?尝试一下将status设置为null时是否抛出此异常<aclass='referer'target='_blank'>@JFinal我是不是应该把版本回滚到1.8,不敢冒这种不稳定情况的险啊,因为出现这个问题的时候,整个页面一片空白……那还是版本回滚好了回复<aclass='referer'target='_blank'>@JFinal:波总太流劈了回复<aclass='referer'target='_blank'>@袁小猴:升级jfinal到2.2,此问题,早就不存在了回复<aclass='referer'target='_blank'>@JFinal:后来这么问题解决了吗?为什么就是我加了JspRender.setSupportActiveRecord(true);这个以后。。。还是会偶发的报错。需要重启项目。。不需要回滚,关于EL增强这个功能,只需要JspRender.setSupportActiveRecord(true)就相当于回滚到1.8了,去群里面找下我,我看看是什么问题

    2020-06-14 20:16:18
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
用计算和数据去改变整个世界 立即下载
《用管控策略设定多账号组织全局访问边界》 立即下载
面向失败设计 立即下载