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.)
Am besten können Sie den Cookie-Namen in der Anfrage cookie
header überprüfen.
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.
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% Verwenden Sie die Cookie-Map, um zu überprüfen, ob ein Cookie existiert oder nicht
${cookie["persist"] == null}
Ich hoffe, es funktioniert