我正在使用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 <c:if tag
JSTL与scriptlet混合可能存在一些问题。
如何仅使用JSTL访问JSP页面中的isUserInRole()
方法?
答案 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>