日期:2014-05-17  浏览次数:20699 次

关于logic:equal和c:if标签获取session值的问题
如题,根据session中的managerLevel值来判断其权限,然后根据权限显示部分功能问题

我的session中封装了managerDto对象,里面有managerLevel属性,当我用
<logic:notEqual name="managerDto" property="managerLevel" scope="session" value="2">
...
</logic:notEqual>
进行判断时,原则上是没什么问题的,但当session失效后,上述语句会报异常

后来我使用
<c:if test="${sessionScope.managerDto.managerLevel !='2'}">
...
</c:if>
来进行判断,我在页面上用alert(${sessionScope.managerDto.managerLevel})弹出了对应的值,但上述<c:if语句却没有做出相应的判断效果,求解(managerLevel值为2,但语句体还是被执行了)

------解决方案--------------------
当session失效之后,session对象就默认为null。 而从session取出存放的对象信息,要调用session.getAttribute("xxxx");方法, 所以会出现空指向异常信息