2017-05-23 10:39

光看 bean 看不出啥问题,关键是你如何存,如何取?

2017-05-23 10:36

@cleverbug 你还可以通过扩令扩展来实现这个功能,用起来会更方便,例如这样用:
#i18n(key)

2017-05-23 10:20

@Ferrari8899 打个官方广告,这类解决方案,现成的代码,在 jfinal club 项目中都有,直接可以使用,可以考虑一下加入俱乐部

2017-05-23 10:14

将此拦截器配置为全局拦截器:
me.add(new LoginSessionInterceptor());

此外,很多年前就不这么用了,session 在应用重启时会丢失,无论是开发还是生产环境都非常不便,现在我们做登录 session 维护都是直接写入数据库,然后在数据库与内存间使用缓存提升下性能

由于登录数据是放在数据库中的,当应用断电或重启都无所谓

2017-05-23 10:12

写个拦截器,然后判断 session 中的相关值是否存在,存在则继续,不存在则重定向到 login 页面,几行代码的事:
Account loginAccount = inv.getController().getSessionAttr("loginAccount");
if (loginAccount != null) {
inv.invoke();
} else {
inv.getController().redirect("/login");
}

2017-05-23 10:09

@leomj 定义 NULL_INTERS 长度为 0 的拦截器数组,是为了在没有全局拦截器时,对全局拦截器的拼接,避免使用 if ( xxx != null) 的判断

2017-05-23 10:08

@leomj 在 configInterceptor(Interceptors me) 中添加即可看到:
me.add(new GlobalInterceptor());

2017-05-23 09:36

@22ss 用到了前面介绍的两个方向排查出来的?

2017-05-22 21:25

@leomj 注意看这两个属性:
private Interceptor[] globalActionInters = NULL_INTERS;
private Interceptor[] globalServiceInters = NULL_INTERS;

在添加全局拦截器的时候,数组会添加进去

2017-05-22 21:14

@zan7755 不好意思,后来把这事忘了,现在可以下载 jfinal 3.1 的 changelog 了: http://www.jfinal.com/download/?file=jfinal-3.1-changelog.txt

2017-05-22 21:01

@tobecontinue 不用老是添加 ?? 这个运算符,即便是 coat 为 null 也是不用添加的,在 obj.attr 这种表达式的 obj 为 null 才需要添加

2017-05-22 20:55

这段 js 代码是写在 ".js" 文件之中的,还是直接写在 html 之中的? 如果是后者,经由模板引擎会渲染出数据来,如果是前者,".js" 文件没有被模板引擎渲染过,所以出不来数据

2017-05-22 19:57

shrio 是怎样影响到 ajax 请求的,如果不知道细节,没有办法去解决,建议参考一下这里:http://www.jfinal.com/share/224

2017-05-22 19:55

@cleverbug 用一下 I18nInterceptor,在模板中直接就可以使用了,看一下手册中有关 i18n 那一章

我记得在添加 I18nInterceptor 以后,在页面中直接用:
#(_res.get(key))
#(_res.format(str, p1, p2..., pn))