关于jfinal model.dao查询出的记录自动封装为对象再返回到JSP页面的问题

吴德发 发布于 2014/06/16 15:40
阅读 1K+
收藏 2

在使用jfinal时,新建了一个user的model类。user.dao.findFirst查询数据库时,得到的记录会自动封装为一个user对象。   

    用setAttr("user",user)返回到JSP页面时,可以用EL的${user.username}读取到username属性。但是用setSessionAttr("user",user)返回到JSP页面时,EL表达式,读取不到username属性。系统错误提示,找不到username属性。

Controller 类的代码

User user = User.dao.checkLogin(username, password);

if(user != null){
setSessionAttr("user", user);
render("/index.jsp");
}
JSP页面用EL表达式获取但是取不到username属性。

${sessionScope.user.username }

给出的错误提示

严重: Servlet.service() for servlet jsp threw exception
javax.el.PropertyNotFoundException: Property 'username' not found on type com.niit.dd.login.User


加载中
1
胡小强
胡小强
jfinal默认是不启用session的,如果要启用,可以在config里配置
/**
	 * 配置全局拦截器
	 */
	@Override
	public void configInterceptor(Interceptors me) {
		me.add(new SessionInViewInterceptor(true));
	}



吴德发
OK.搞定了。谢谢
0
JFinal
JFinal

    为了更好地支持集群 JFinal 默认不会擅自操作 session,添加一个全局拦截器即可:

public void configInterceptor(Interceptors me) {
  me.add(new SessionInViewInterceptor());
}
   然后在页面直接用  ${session.user.userName}
吴德发
谢谢波大神!搞定了!
返回顶部
顶部