如何使用JSTL访问jsp中的“isUserInRole”

时间:2016-07-20 16:49:42

标签: jsp jstl roles

我正在使用MySQL制作JSP / Servlet CRUD。我目前在我的项目中有两个角色:经理和员工。我想根据这些角色显示不同的数据。如何在不使用scriptlet的情况下访问request.isUserInRole()方法?我听说使用scriptlet很糟糕。

我暂时拥有以下代码:

<c:if <%request.isUserInRole("manager");%>=true> <!-- Display something --> <c:if <%request.isUserInRole("employee");%>=true> <!-- Display something -->

但是我收到了一个错误:

HTTP Status 500 - /protected/listUser.jsp (line: 97, column: 9) Unterminated &lt;c:if tag

JSTL与scriptlet混合可能存在一些问题。

如何仅使用JSTL访问JSP页面中的isUserInRole()方法?

1 个答案:

答案 0 :(得分:1)

您应该使用test属性(is required)指定条件。

可以通过

来实现
  <% request.setAttribute("isManager", request.isUserInRole("manager")); %>
  <c:if test="${requestScope.isManager}">
    <!-- Display manager -->
  </c:if>
  <c:if test="${!requestScope.isManager}">
    <!-- Display employee -->
  </c:if>

  <% request.setAttribute("isManager", request.isUserInRole("manager")); %>
  <c:choose>
    <c:when test="${requestScope.isManager}">
      <!-- Display manager -->
    </c:when>
    <c:otherwise>
      <!-- Display employee -->
    </c:otherwise>
  </c:choose>