Scala / Java Servlets: how to output <to HTML instead of & lt;

I have a servlet encoded in Scala. I have a code like this:

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

The corresponding HTML generated for valueis

Hello &lt;BR/&gt; World

How can I get the HTML code (shown below)?

Hello <BR/> World

Thanks in advance

+3
source share
1 answer

If you don't mind changing the type valueto xml.Elem, you can do

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

Adding

-, XML-. . - (, /), XML-.

, , :

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"

( - <xml:group>, xml.NodeSeq.fromSeq(value.assumeXML.child) )

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

(, , Unparsed(value) )

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

assumeXML , XML; toUnparsedXML , .

+7

Source: https://habr.com/ru/post/1758258/


All Articles