关于session判断为空和render的两个问题

第一~

jfinal中,controller层的方法里要判断session是否为空,getSession()!=null这样是不行的,getSession().getAttribute("id")!=null这样才可以,为啥啊

第二~

render的时候,比如render到登陆页,确实转过去了,但还是在子级frame中,没有占满窗口回到父级怎么解决

评论区

yzdoraemon

2017-08-31 10:27

发现问题是我对session的判断是放在action的,而这个链接的a标签上有target,如何才能用拦截器实现这个功能,验证登陆状态

杜福忠

2017-08-31 12:04

看下这个社区是怎么写的吧, 模仿一下
下载福利 jfinal-club:http://www.jfinal.com/club/download

JFinal

2017-08-31 17:33

第一个问题, getSession() 默认是调用转调了 HttpServletRequest 的 getSession(),而这个方法在 session 没有被创建时,会默认给你创建一个,所以永远不可能为 null 值,这个行为是 java web 规范,所以与 jfinal 毫无关系

你可以通过 getSession(false) 让 HttpServletRequest 在 session 不存在时不去创建 session,但是这也不太保险,因为你要确保所有地方是 getSession(false) ,否则不管登录没登录,只要 getSession() 都不可能是 null 值

第二个问题是个纯前端的事, jfinal 是后端框架,是没法干预到前端的事的,只要你将 html、js、css 处理好就可以了

热门反馈

扫码入社