2022-07-12 14:35
BaseController重写getRender()
@Override
@NotAction
public Render getRender() {
Render render = super.getRender();
if (render instanceof com.jfinal.render.JsonRender) {
} else if (isRenderJson()) {
return RenderManager.me().getRenderFactory().getJsonRender(getAdminResult());
}
return render;
}
isRenderJson()判断可以是客户端带上指定的参数,或者ajax的dataType之类的
2022-06-21 10:54
@JFinal 詹总,刚好想到之前项目有个情况,因为TL多数时候用法是try{serTL();拦截器invoke();}finally{removerTL();}有一次就是前端render的时候用到TL的东西,但是拦截器invoke()的后面其实是发生在response写之前的,这时候TL清空,render已经拿不到想要的东西,当然这个场景可以用别的处理方法,小问题。那么詹总有没有考虑过after拦截器,或者现有的拦截器加个afterResponse()回调呢,应该还是有应用场景的。
2022-06-20 23:15
@JFinal 使用场景主要就是线程内的“全局变量”。我是放在一个工具类使用的,private static final FastThreadLocal> threadMap = new FastThreadLocal>();然后有还有setThreadMap(String key, Object value);removeThreadMap();removeThreadMap(String key);get方法;