我有一个多用户门户,我在securedHolder
为两个用户(管理员和教师)存储值。但不存储超级管理员的价值。
我必须按照用户角色(管理员,教师和超级管理员)显示导航菜单。
所以我想检查JSP页面中是否设置了值。如何在JSP中做到这一点?
我已检查过用户角色但无法检查特定值。
<sec:authorize access="hasRole('ROLE_TEACHER')">
-- Do something for teacher
-- want to check the value here
</sec:authorize>
答案 0 :(得分:0)
为什么不在用户登录时将用户会话中的role属性保存为“teacher”,“admin”或“superadmin”?
然后你可以使用jstl标签做这样的事情:
<c:choose>
<c:when test="${sessionScope.user.role == 'teacher'}">
your nav bar for teachers
</c:when>
<c:when test="${sessionScope.user.role == 'admin'}">
your nav bar for admins
</c:when>
<c:when test="${sessionScope.user.role == 'superadmin'}">
your nav bar for superadmins
</c:when>
<c:otherwise>
your nav bar for somebody else
</c:otherwise>
</c:choose>
答案 1 :(得分:0)
以这种方式使用jstl
:
<c:if test="${not empty var}">
<div>do whatever you need</div>
</c:if>
混合所有,我会这样做:
<sec:authorize access="hasAnyRole('ROLE_TEACHER','ROLE_ADMIN')">
<c:if test="${not empty var}">
<div>do whatever you need</div>
</c:if>
</sec:authorize>
答案 2 :(得分:0)
完成使用
<sec:authorize access="principal.securedHolder['value']==requiredvalue"></sec:authorize>