2012-07-10 104 views
0

我想从jsp页面访问角色会话属性(我在认证过程中设置了这个属性),并检查其值是否等于“admin”或“user”。我如何使用逻辑标签来做到这一点。使用逻辑标记从jsp页面访问会话属性

+0

你的意思是你已经在会话中添加了一个属性?这个属性叫什么? – 2012-07-10 08:47:59

+0

该属性称为角色,必须使用字符串'admin'进行检查。 – Rishabh 2012-07-10 08:52:21

回答

4

假设你的会话属性被称为“角色”:

<logic:equal name="role" value="admin" scope="session"> 
    etc 
</logic:equal> 

如果你喜欢因为没有它的标签会看在任何范围(页面,请求,会话)可以省略scope属性

2

帮你一个忙,忘掉逻辑标签。使用JSTL和JSP EL来代替:

<c:if test="${role == 'admin' or role == 'user'}"> 
    ... 
</c:if> 

Struts documentation本身不鼓励使用逻辑标记,并促进使用JSTL的:

注: - 许多功能在这个标签库是也可在 JavaServer Pages标准标记库(JSTL)中获得。 Apache Struts组 鼓励在可能的情况下在Struts特定标签 上使用标准标签。

+0

此代码给出了以下错误JSPG0124E:自定义标签属性测试不能是运行时表达式。值:“[$ {role =='admin'}]” – Rishabh 2012-07-10 08:56:19

+0

然后,您的JSTL安装出现问题。当然,c:if的测试属性可以是EL表达式。 – 2012-07-10 09:05:27