JSP: JSTLs Schild

Lesezeit: 2 Minuten

Benutzer-Avatar
Steve Kuo

Schreiben einer JSP-Seite, was genau macht das <c:out> tun? Mir ist aufgefallen, dass die folgenden beide das gleiche Ergebnis haben:

<p>The person's name is <c:out value="${person.name}" /></p>
<p>The person's name is ${person.name}</p>

Benutzer-Avatar
krosenvold

c:out maskiert HTML-Zeichen, sodass Sie Cross-Site-Scripting vermeiden können.

wenn person.name = <script>alert("Yo")</script>

Im zweiten Fall wird das Skript ausgeführt, nicht jedoch bei Verwendung c:out

  • Nur wenn ‘escapeXML’ auf true gesetzt ist (nicht sicher, ob es standardmäßig so ist)

    – Chris Serra

    14. November 2008 um 19:12 Uhr

  • Ich glaube, es ist standardmäßig wahr.

    – Zack der Mensch

    2. Juli 2009 um 17:02 Uhr

  • NB es entkommt XML nicht HTML. Eine der ärgerlicheren Feinheiten von JSTL. Am Ende schreibe ich immer meine eigene HTML-Flucht EL fn.

    – Adam Gent

    12. Juni 2011 um 18:16 Uhr

  • Beim Attributnamen wird zwischen Groß- und Kleinschreibung unterschieden, also ist es escapeXml=”true” und nicht escapeXML

    – Mark Chorley

    8. April 2013 um 10:43 Uhr

  • Ich habe keine Ahnung, was das Codebeispiel dieser Antwort zeigt – kann jemand das klären? Es erwähnt einen “zweiten Fall”, aber ich sehe das nicht und ich sehe nicht, dass c:out im Code verwendet wird.

    – IcedDante

    2. Oktober 2014 um 15:22 Uhr

Benutzer-Avatar
alexmeia

Wie Will Wagner sagte, sollten Sie in der alten Version von jsp immer verwenden c:out um dynamischen Text auszugeben.

Darüber hinaus mit dieser Syntax:

<c:out value="${person.name}">No name</c:out>

Sie können den Text “Kein Name” anzeigen, wenn der Name null ist.

  • Kühl! Das wusste ich nicht.

    – Adam Asham

    14. November 2008 um 22:04 Uhr

  • Einverstanden, cool. Danke fürs Unterrichten und Helfen. Das wusste ich auch nicht. Prost!

    – B-Geld

    7. Februar 2012 um 17:43 Uhr

  • oder

    – gmustudent

    21. August 2012 um 3:21 Uhr

  • JSR 52, Maintenance Release 2, siehe Seite 22 „mit Körper“. Verknüpfung: download.oracle.com/otndocs/jcp/jstl-1.2-mrel2-eval-oth-JSpec

    – Bart

    6. Dezember 2012 um 23:12 Uhr


  • @Barett. Kühl. Ich frage mich, warum dies nie eines der Tutorials oder Beispiele macht. Eine bequemere Syntax als das Standardattribut IMO.

    – Thilo

    27. Dezember 2012 um 5:30 Uhr

c:out hat auch ein Attribut zum Zuweisen eines Standardwerts, wenn der Wert von person.name zufällig null ist.

Quelle: out (TLDDoc generierte Dokumentation)

Sie können das Maskieren von XML-Entitäten explizit aktivieren, indem Sie einen Attribut-escapeXml-Wert verwenden, der gleich „true“ ist. FYI, es ist standardmäßig “true”.

Ältere Versionen von JSP unterstützten die zweite Syntax nicht.

1319700cookie-checkJSP: JSTLs Schild

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy