@JFinal 你好,想跟你请教个问题:
我在Controller中往session中放了一个User对象,jsp页面el标签取对象属性的时候报错:
User' does not have the property 'nickName'.
是什么问题呢?
P.S
1.Config中已经进行模型映射
arp.addMapping("user", User.class);
2.表中也有nickName这个字段
3.jsp页面表达式${sessionScope.curUserObj.nickName}
4.在页面 ${sessionScope.curUserObj}能输出user对象,并且也有nickName属性:
bean.User@4a952b12 {id:1, status:null, nickName:Romotc, email:r@ail.com, pswd:4e6327, lastLoginTime:, registerTime:2:56.0}
JspRender对HttpServletRequest对象中的数据进行了处理,数据全被放入了Map之中,如果希望不被处理,可以通过在YourJFinalConfig中调用一下:JspRender.setSupportActiveRecord(false)。
由于JFinal为了Resful,session中的数据默认是不处理的,所以session中的数据无法通过${blog.title}获取到。这个问题本质上是JSTL数据读取能力太弱造成的,建议使用FreeMarker取代JSP
多谢 @JFinal关于session的代码没有贴出来 session.setAttribute(" curUserObj ", user);?还有实例化user的代码?user是从数据库中查询出来的Useru=User.findByEmail(getPara(LoginValidator.UIKey_Email));setSessionAttr(SessionConstants.CurUser,u);是不是user是你数据库的系统表注意个数据库之间表的细节
arp.addMapping("\"user\"",User.class);
这样试试?
应该还不是的我直接在页面${sessionScope.curUserObj}能输出user对象,并且也有nickName属性bean.User@4a952b12{id:1,status:null,nickName:Romotc,email:r@ail.com,pswd:4e6327,lastLoginTime:,registerTime:2:56.0} 用get方式直接取出来是不行的,jfinal的render是进行了封装的
对象.get('nickName')
确实是这样,使用.get('nickName')是可以取到值的。但是我看官方的demo_for_jsp里面blog.jsp里面是直接${blog.title}这样取的。希望 @JFinal来了之后给解答一下,是什么原因。到底怎么取得呀?
看了半天都没看见取得的方法。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。