Prüfen, ob Cookie mit JSP EL existiert

8

Ich versuche zu überprüfen, ob ein Cookie auf einer JSP-Seite mit der Ausdruckssprache existiert.

Ich habe einen Cookie namens persist , der entweder auf eine leere Zeichenfolge oder auf "checked" gesetzt ist.

Wenn Sie überprüfen möchten, ob der persist -Cookie existiert.

Ich habe Folgendes versucht:

<c:if test="${cookie.persist == null}">

<c:if test="${empty cookie.persist}">

Beide obigen Anweisungen sind true , wenn der Wert des persist -Cookies die leere Zeichenfolge ist, und false, wenn der Wert des Cookies checked ist.

Wie unterscheide ich zwischen einem Cookie mit der leeren Zeichenfolge als Wert und einem Cookie, der nicht existiert.

(Hinweis: Ich kann dieses Problem problemlos umgehen, indem ich dem Cookie anstelle der leeren Zeichenfolge einen nicht leeren Wert zuweise.)

    
Mike 12.09.2011, 23:24
quelle

4 Antworten

7

Am besten können Sie den Cookie-Namen in der Anfrage cookie header überprüfen.

%Vor%

Wenn jedoch ein anderes Cookie mit dem Namen foopersist vorhanden ist, schlägt es fehl.

Wenn Ihr Container EL 2.2 unterstützt (alle Servlet 3.0 Container wie Tomcat 7, Glassfish 3, usw.), können Sie einfach Map#containsKey() verwenden.

%Vor%

Wenn es Ihnen nicht gelingt, erstellen Sie am besten eine EL-Funktion (ein konkreteres Deklarationsbeispiel befindet sich irgendwo in der Nähe von diese Antwort ):

%Vor%

mit

%Vor%     
BalusC 13.09.2011, 15:23
quelle
0

Verwenden Sie die Cookie-Map, um zu überprüfen, ob ein Cookie existiert oder nicht ${cookie["persist"] == null}

Ich hoffe, es funktioniert

    
quelle
0

Wenn ich es richtig verstehe, möchten Sie feststellen, dass es entweder nicht existiert oder leer ist.

BEARBEITEN: ah. Um zu überprüfen, dass es nicht existiert, muss es null und nicht leer sein.

%Vor%     
Femi 12.09.2011 23:33
quelle
0

wenn Sie Tomcat 6 + verwenden

%Vor%     
aalmero 15.05.2012 17:21
quelle

Tags und Links