groovy html模板';可收成的';在ratpack中被忽略

groovy html模板';可收成的';在ratpack中被忽略,groovy,ratpack,Groovy,Ratpack,我试图将部分html注入,但它似乎总是“逃避”html内容。如何将HTML代码段发送到标记并直接呈现 “hello.gtpl”的内容 我错过了什么?您需要配置MarkupTemplateEngine以禁用自动转义。 下面是一个使用最新稳定版本Ratpack的工作示例 ratpack.groovy get('helloplain') { //works .but clumsy String htmlPayLoad = "<!DOCTYPE html> <

我试图将部分html注入,但它似乎总是“逃避”html内容。如何将HTML代码段发送到标记并直接呈现

“hello.gtpl”的内容


我错过了什么?

您需要配置
MarkupTemplateEngine
以禁用自动转义。 下面是一个使用最新稳定版本Ratpack的工作示例

ratpack.groovy

    get('helloplain') { //works .but clumsy
        String htmlPayLoad = "<!DOCTYPE html>  <html>  <title> Hello </title><body> <h3> Hello </h3> </body> </html>"
        context.getResponse().contentType(HttpHeaderConstants.HTML_UTF_8).send(htmlPayLoad.getBytes());
    }
    get('hellotemplate') { //ex: /users/
        String text = "<title> Hello </title><body> <h3> Hello </h3> </body> "
        render groovyMarkupTemplate( "hello.gtpl"  ,text: text  )
    }
@Grab('io.ratpack:ratpack-groovy:1.1.1')

import static ratpack.groovy.Groovy.ratpack
import static ratpack.groovy.Groovy.groovyMarkupTemplate
import ratpack.groovy.template.MarkupTemplateModule

ratpack {
  bindings {
    module(MarkupTemplateModule) { config ->
      config.autoEscape = false
    }
   }

  handlers {
    get {
      String text = '<title>Hello</title><body><h3>Hello</h3></body>'
      render groovyMarkupTemplate('hello.gtpl', text: text)
    }
  }
}
@Grab('io.ratpack:ratpackgroovy:1.1.1')
导入静态ratpack.groovy.groovy.ratpack
导入静态ratpack.groovy.groovy.groovyMarkupTemplate
导入ratpack.groovy.template.MarkupTemplateModule
鼠笼{
绑定{
模块(MarkupTemplateModule){config->
config.autoEscape=false
}
}
处理者{
得到{
字符串文本='HelloHello'
呈现groovyMarkupTemplate('hello.gtpl',text:text)
}
}
}
模板/hello.gtpl

yieldUnescaped '<!DOCTYPE html>'
html {
    yieldUnescaped text
}
yieldUnescaped '<!DOCTYPE html>'

html {
  yieldUnescaped text
}
yieldUnescaped''
html{
缩略文本
}
针对正在运行的应用程序的curl输出

$ curl localhost:5050
<!DOCTYPE html><html><title>Hello</title><body><h3>Hello</h3></body></html>
$curl localhost:5050
你好

有关哪些属性可用于配置的列表,您可以检查影响所有请求的GDK

,对吗?有没有办法限制选择请求?@Jayan这只会帮助
yieldUnescaped
取消HTML实体和字符的搜索,所有其他
yield
文本的搜索仍然应该取消任何HTML实体的搜索。好的。。接受答案,在符合条件时将给予赏金。
$ curl localhost:5050
<!DOCTYPE html><html><title>Hello</title><body><h3>Hello</h3></body></html>