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
2019-11-08 14:55
@简单代码 jfinal club 中的 JsoupFilter.java 已经解决过了,参考 jfinal club 中对于 JsoupFilter 的使用方法
简单来说就是按一定规则将恶意部分过滤掉
2019-11-08 14:50
@smileForLife 使用 return 返回模板需要用拦截器稍做点扩展,例如:
public MyInterceptor implements Interceptor {
public void intercept(Invocation inv) {
inv.invoke();
Object ret = int.getReturnValue();
if (ret instantceof String) {
inv.getController().render(ret.toString());
}
}
}
然后将这个拦截器配置为全局拦截器:
public void configInterceptor(Interceptors me) {
me.add(new MyInterceptor());
}
2019-11-08 13:49
注意对比 ArpTest1 与 ArpTest2 的 addMapping(...)
ArpTest1.addMapping("BAS_BRAND", "BRAND_CODE", BasBrand.class);
ArpTest2.addMapping("BAS_BRAND", "BRAND_CODE", BasBrand.class);
这两个 addMapping 映射了同一个 BasBrand.class,所以就会有这个异常
Model 在一个应用中是全局唯一的,多数据源的时候也只能映射一次,以前老版本虽然没做限制,但最终只有最后一次映射有效,前一次映射会被覆盖
2019-11-08 13:44
@leomj 使用 jfinal 的 Render 扩展出各种格式的响应数据极度便利,比扩展 spring 的 ViewResolver 简单 32 倍
享主的分享简单实用,必须赞