jfinal在service层调用session

getSessionAttr(String key)和setSessionAttr(String key, Object value) 是我们经常用的对session操作 的工具,不过只可以在controller中使用/

面对复杂的对session的操作是不可以都在controller中进行的

查看getSessionAttr(String key)的源码发现,其中使用了 request.getSession(false);

而 request.getSession(false)就是获得了此次会话的session,

request.getSession()会新建一个session,显然不是我们想要的


所以只要在controller中加入 HttpSession session = getSession(false);

再把session 传到service层,就可以放心的进行操作了


public  T getSessionAttr(String key) {
		HttpSession session = request.getSession(false);
		return session != null ? (T)session.getAttribute(key) : null;
	}

你可能感兴趣的:(jfinal)