2017-05-31 3 views
0

So habe ich eine bedingte Liste, die auf der Seite hinzugefügt werden kann, und ich möchte nur überprüfen, ob der Benutzer eine Admin-Rolle hat.JSTL hasRole verkettet mit boolescher Bedingung

Ich versuche, wie dies zu tun:

<sec:authorize access="hasAnyRole('ADMIN')"> 
     <c:if test="${empty list}"> 
    </sec:authorize> 

//do stuff here 

<sec:authorize access="hasAnyRole('ADMIN')"> 
    </c:if> 
    </sec:authorize> 

Es hält für eine Beendigung schließt Tag suchen, so dass dies wird nicht kompilieren.

Meine Frage ist, gibt es eine Möglichkeit, einen Rollencheck zusammen mit einer booleschen Prüfung zu verketten.

Etwas wie folgt aus:

<c:if test="${empty list && hasAnyRole('ADMIN')}"> 

//...DO STUFF HERE 

</c:if> 

Antwort

1

Es ist möglich, das Ergebnis der <sec:authorize> Ausführung in einer Variablen zu speichern und später in der JSTL Ausdruck verwenden:

<sec:authorize var="isAdmin" access="hasAnyRole('ADMIN')"> 

<c:if test="${isAdmin and empty list}"> 
    //do stuff here 
</c:if> 
+0

Sie können auch 'hasRole verwenden (‘ ADMIN ') 'anstelle von' hasAnyRole (' ADMIN ') '. –

+0

Danke dafür. – Blawless