请教一下enjoy 中的#if 能不能获取session的内容?

 #if(session.user!=null) 

这样写就会报错


 "session" can not be null for accessed by "session.user"


请教一下应该如何使用哈?   

评论区

JFinal

2018-07-25 20:30

加个全局拦截器就可以了:
me.add(new SessionInViewInterceptor());

xiaoxxin6140

2018-07-30 11:36

@JFinal 我配置了依然无效
/**
* 配置全局拦截器
*/
public void configInterceptor(Interceptors me) {

me.add(new SessionInViewInterceptor());
}
页面上
#(session.user.username)

是不是写法有问题?

爱小乖

2019-11-05 23:35

我也遇到这个问题了

JFinal

2019-11-08 14:59

@xiaoxxin6140 @爱小乖 在使用 SessionInViewInterceptor 时再多传入一个 true 参数,例如:
me.add(new SessionInViewInterceptor(true));
传入 true 参数是让拦截器在获取不到 sesion 对象时,立即创建一个,进而这个 session 永远不为 null,进而 session.user 才不会抛出空指针异常

如果不传入这个 true 参数,那么使用的时候需要用双问号表达式,例如:
#if(session.user ?? !=null)
因为双问号表达式可以在 session 为 null 时避免空指针异常,双问号表达式的文档见这里:
https://www.jfinal.com/doc/6-3

热门反馈

扫码入社