3 Stimmen

Scala/Java-Servlets: Wie kann man < im HTML-Code ausgeben, anstatt <

Ich habe ein Servlet in Scala codiert. Ich habe einige Code wie diese in dort:

def message = <HTML><HEAD><TITLE>Test</TITLE></HEAD><BODY>{value}</BODY></HTML>
def value = "Hello <BR/> World"

Der entsprechende HTML-Code, der für value es

Hello &lt;BR/&gt; World

Wie kann ich den HTML-Code (siehe unten) erzeugen?

Hello <BR/> World

Vielen Dank im Voraus

7voto

Debilski Punkte 65106

Wenn es Ihnen nichts ausmacht, den Typ der value a xml.Elem können Sie tun

def value = <xml:group>Hello <BR/> World</xml:group>

Zusatz

Meiner Meinung nach sollten Sie so viel XML wie möglich inline eingeben. Nur dann haben Sie eine Kompilierzeitvalidierung der Eingaben. Alle anderen Lösungen führen entweder zu einer Laufzeit-Exception (z.B. weil man etwas vergessen hat) oder zu einem Fehler. / ) oder könnte sogar Ihr XML-Layout zerstören.

Wenn Sie jedoch wirklich eine einfache Umwandlung wünschen, können Sie dies tun:

class XmlString(str: String) {
  def assumeXML = xml.XML.loadString("<xml:group>" + str + "</xml:group>")
  def toUnparsedXML = new xml.Unparsed(str)
}
implicit def stringToXmlString(str: String) = new XmlString(str)

def value = "Hello <BR/> World"

und dann (aus irgendeinem Grund zeigt es immer noch die <xml:group> Teil; Sie könnten ihn loswerden mit xml.NodeSeq.fromSeq(value.assumeXML.child) oder ähnlich)

def message = <HTML><HEAD><TITLE>Test</TITLE></HEAD><BODY>{value.assumeXML}</BODY></HTML>

oder sogar (na ja, hier bräuchte man das implizit nicht, Unparsed(value) reichen würde)

def message = <HTML><HEAD><TITLE>Test</TITLE></HEAD><BODY>{value.toUnparsedXML}</BODY></HTML>

Le site assumeXML Methode wird zur Laufzeit fehlschlagen, wenn Sie ungültiges XML bereitstellen; toUnparsedXML akzeptiert alle Eingaben, auch solche, die potenziell gefährlich sind.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X