2

我已经设置了一个会话,根据每个用户的角色控制菜单......现在例如我有这个

<c:set var="role" scope="session" value='<%=((Long) session.getAttribute("role")).longValue()%>' />
<c:if test="${role == 121}">
        <div id="menu">
            <span class="menu-header">Registration</span>
            <ul>
                <li><a href="${pageContext.request.contextPath}/registration/organization-registry">Organization Registry</a></li>


            </ul>
        </div>
    </c:if>

<div id="menu">
                <span class="menu-header">Directory</span>
                <ul>
                    <li><a href="">Organization</a></li>


                </ul>
            </div>

现在,如果我想在不登录的情况下转到该页面怎么办?我试图在不登录的情况下转到该页面,但NullPointetExcepetion基本上遇到了,因为我没有任何会话存储在角色中。我在用户登录时设置了每个会话。当不登录时,我想查看不需要任何角色的菜单...例如,我使用一个可以被其他人查看的链接重定向到该页面。

未登录时,如何仍能查看目录菜单?

4

1 回答 1

1

完全摆脱这<c:set>条线。你不需要它。EL${}已经在页面、请求、会话和应用程序范围内搜索属性。NPE 是由于您longValue()null.

请记住:您永远不应该将 oldschool scriptlet <% %>与现代 EL混合使用${}。这是没有意义的。你只会迷惑自己。

也可以看看:

于 2013-02-10T17:42:47.843 回答