Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala 防止游戏框架';s模板引擎从转义我的字符串_Scala_Templates_Playframework 2.1 - Fatal编程技术网

Scala 防止游戏框架';s模板引擎从转义我的字符串

Scala 防止游戏框架';s模板引擎从转义我的字符串,scala,templates,playframework-2.1,Scala,Templates,Playframework 2.1,我创建了一些实用程序来帮助我生成HTML,并在视图中将它们引用为@div(“class”->“well”){Hello well.}。到目前为止,这些类都是子类化的NodeSeq,因为它们当时是。但是我需要去掉类层次结构顶部的NodeSeq,因为Scala的xml有缺陷,使我的代码变得粗糙,因为我可以切换到Traits 因此,我试图找出如何防止Play逃逸我的标记-对象。但不幸的是,我找到的唯一有效的解决方案是重写模板编译器,让用户在其Build.scala设置中指定我的编译器 但我希望忽略了一

我创建了一些实用程序来帮助我生成HTML,并在视图中将它们引用为
@div(“class”->“well”){Hello well.}
。到目前为止,这些类都是子类化的
NodeSeq
,因为它们当时是。但是我需要去掉类层次结构顶部的
NodeSeq
,因为Scala的xml有缺陷,使我的代码变得粗糙,因为我可以切换到Traits

因此,我试图找出如何防止Play逃逸我的
标记
-对象。但不幸的是,我找到的唯一有效的解决方案是重写模板编译器,让用户在其
Build.scala
设置中指定我的编译器


但我希望忽略了一种更简单的方法?

如果html助手返回的是“html”而不是字符串,则不需要在视图中使用@html标记来包装它们

乙二醇


自版本
2.2.0-M1
以来,文档中出现了一种新方法,解释了如何将自定义格式添加到模板引擎。这使我能够轻松地集成我的实用程序


自定义模板格式:

我有点不确定您的意思(标记助手的示例代码会有所帮助),但我的第一个想法是您需要使用
@Html(“不会转义的东西”)
?你能详细说明一下吗?我基本上是在Play的引擎上构建一个自定义模板引擎。因此,不能使用
@Html
包装我的呼叫。这是一个很好的方法,但不幸的是,我的助手
@div
是一个通过其
toString
方法由Play渲染的类。(两个链接都断开了)
import play.api.templates.Html

def a(src: String, value: String) : Html = Html(s"<a href='$src'>$value</a>")
@a("www.example.com", "Example")