首页
App
&
Coffee
文档
项目
分享
反馈
俱乐部
登录
注册
请问在service层获取请求响应和session对象有什么简便方法嘛?
liujh
2017-10-17 17:37
请问在service层获取请求响应和session对象有什么简便方法嘛?谢谢
项目:
JFinal
4
评论区
macaque
2017-10-17 17:44
ThreadLocal
回复
liujh
2017-10-17 17:48
@macaque
这个我知道 就不知道 jfinal 有没有封装这样的工具
回复
JFinal
2017-10-17 17:49
session 是 web 层的东西,service 要做得纯粹不要与 web 层的东东耦合
在控制层从 session 中获取所需要的参数以后,再调用 service 层,从而避免在 service 中对 session 依赖
回复
macaque
2017-10-17 17:49
@liujh
我了解到的应该是没有,得自己写
回复
liujh
2017-10-17 18:00
@JFinal
像Struts2跟springMVC都有封装这样的工具 这是为什么了? 我们不都提倡责任分离嘛
回复
JFinal
2017-10-17 18:09
@liujh
你是指 struts2 中的 ActionContext.getContext().getSession() 这种用法吧,在 jfinal 中用一个 ThreadLocal 配合一个全局拦截器很容易:
public class Context implements Interceptor {
private static final ThreadLocal TL = new ThreadLocal();
public class intercept(Invocation inv) {
TL.set(inv.getController().getSession());
try {
inv.invoke();
}finally {
TL.remove();
}
}
public static Sessoin getSession() {
return TL.get();
}
}
最后配置这个为全局拦截器即可:
public void configInterceptor(Interceptors me) {
me.add(new Context());
}
然后你就可以在 service 中这样用来了:
Session session = Context.getSession();
回复
liujh
2017-10-17 18:17
@JFinal
谢谢 刚加入 JFinal大家庭 不吝赐教
回复
JFinal
2017-10-17 20:31
@liujh
记得搞定后回来分享一下
回复
发送
我要反馈
热门反馈
扫码入社