Ich habe dieses seltsame Problem mit Sonderzeichen ..__ In JSP verwende ich Feldname als ID und der Name kann beliebig sein
id="<1 and &>2" (OR)
id="aaa & bbb"
Ich habe keine andere Möglichkeit, andere IDs als Namen zu verwenden, das ist das einzige, was ich vom Backend bekomme.
Gibt es eine Logik, um alle Sonderzeichen mithilfe von JSTL zu entfernen .. Im aktuellen Szenario werde ich in JS einige Vorgänge mit der ID ausführen. Dies verursacht viele Probleme für jede Art von Browser.
Bitte schlage vor, Danke im Voraus ...
Die JSTL bietet zwei Möglichkeiten, um HTML-Sonderzeichen zu umgehen:
<%@ taglib prefix="c" uri="http://Java.Sun.com/jsp/jstl/core" %>
...
<c:out value="${myName}"/>
und
${fn:escapeXml(myName)}
Beide werden die Sonderzeichen in ihre jeweiligen HTML-Entitäten umwandeln: (<
wird zu <
, &
wird zu &
...).
Beachten Sie, dass die IDs in HTML codiert sein müssen, nicht jedoch in JavaScript.
Ich denke, Ihre Frage wurde missverstanden ... Ich bin an der gleichen Stelle wie Sie angekommen und habe das Problem mit excapeXml = "false" gelöst.
<c:out value="${id}" escapeXml="false"/>
Ich hatte Daten in der Datenbank wie:
& lt; Hallo Welt & gt;
und escapeXml = "false" hat es angezeigt
<Hello World>
Ich denke, das ist was du suchst
Verwenden Sie Spring HtmlUtils.htmlEscape (Zeichenfolgeingabe).
Ich war gerade mit einem Szenario konfrontiert, in dem ich entkommen musste, d. H. Das Einzelzitat abgesehen von anderen Sonderzeichen. In diesem Fall schlug fn: escapeXml fehl. Also habe ich JavaScriptUtils.javaScriptEscape () von Spring API verwendet, ein Tag erstellt und angewendet. Nun ist das Problem gelöst. Ich verwies auch auf die URL: http://www.coderanch.com/t/528521/JSP/Java/Passing-JSTL-variable-special-zeichen .