Scala / Java servlet:如何在HTML代码中输出<而不是<
发布时间:2020-12-16 09:05:02 所属栏目:安全 来源:网络整理
导读:我有一个用 Scala编写的servlet.我在那里有一些这样的代码: def message = HTMLHEADTITLETest/TITLE/HEADBODY{value}/BODY/HTMLdef value = "Hello BR/ World" 为值生成的相应HTML代码是 Hello lt;BR/gt; World 如何让它生成HTML代码(如下所示)? Hello BR/
我有一个用
Scala编写的servlet.我在那里有一些这样的代码:
def message = <HTML><HEAD><TITLE>Test</TITLE></HEAD><BODY>{value}</BODY></HTML> def value = "Hello <BR/> World" 为值生成的相应HTML代码是 Hello <BR/> World 如何让它生成HTML代码(如下所示)? Hello <BR/> World 提前致谢 解决方法
如果您不介意将值的类型更改为xml.Elem,则可以执行此操作
def value = <xml:group>Hello <BR/> World</xml:group> 加成 在我看来,你应该尽可能多地输入内联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(值)会这样做) def message = <HTML><HEAD><TITLE>Test</TITLE></HEAD><BODY>{value.toUnparsedXML}</BODY></HTML> 如果提供无效的XML,那么assumeXML方法将在运行时失败; toUnparsedXML将接受所有输入,甚至是有潜在危险的数据. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |