我有类似的东西
<c:forEach var="authority" items="#{SPRING_SECURITY_CONTEXT.authentication.principal.authorities}">
<c:if test="${fn:contains( ${authority} , ROLE_ADMIN) }">
</c:if>
</c:forEach>
但它不起作用,任何想法我怎么能这样做?也许有其他方式?
//被修改
答案 0 :(得分:1)
有两个问题:
您不应嵌套EL表达式。只需以通常的方式引用EL变量。
<c:if test="${fn:contains(authority, ROLE_ADMIN)}">
从问题上下文中不清楚ROLE_ADMIN
是否已经在EL范围内。但是你需要知道你不能在EL中引用常量。如果它是例如enum
,那么很高兴知道它们仅被评估为String
。你需要引用它。
<c:if test="${fn:contains(authority, 'ROLE_ADMIN')}">
答案 1 :(得分:0)
你在if测试中错过了一个结束“)”
<c:forEach var="authority" items="#{SPRING_SECURITY_CONTEXT.authentication.principal.authorities}">
<c:if test="${fn:contains( {$authority} , ROLE_ADMIN ) }">
</c:if>
</c:forEach>