当前位置:  开发笔记 > 前端 > 正文

在ratpack中忽略groovy html模板'yieldUnescaped'

如何解决《在ratpack中忽略groovyhtml模板'yieldUnescaped'》经验,为你挑选了1个好方法。

我试图将部分html注入GTPL文件,但似乎总是"逃脱"html内容.如何将HTML代码段发送到标记并直接呈现?

"hello.gtpl"的内容

yieldUnescaped ''
html {
    yieldUnescaped text
}

来自ratpack.groovy

    get('helloplain') { //works .but clumsy
        String htmlPayLoad = "     Hello  

Hello

" context.getResponse().contentType(HttpHeaderConstants.HTML_UTF_8).send(htmlPayLoad.getBytes()); } get('hellotemplate') { //ex: /users/ String text = " Hello

Hello

" render groovyMarkupTemplate( "hello.gtpl" ,text: text ) }

localhost:5050/helloplain 提供适当的HTML,以 localhost:5050/hellotemplate提供已转义所有HTML内容的文件.

<title> Hello </title><body> <h3> Hello </h3> </body> 

我错过了什么?



1> Dan Hyun..:

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

ratpack.groovy

@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 = 'Hello

Hello

' render groovyMarkupTemplate('hello.gtpl', text: text) } } }

模板/ hello.gtpl

yieldUnescaped ''

html {
  yieldUnescaped text
}

卷曲运行app的输出

$ curl localhost:5050
Hello

Hello

有关可用于配置的属性的列表,您可以查看GDK http://docs.groovy-lang.org/latest/html/gapi/groovy/text/markup/TemplateConfiguration.html

推荐阅读
虎仔球妈_459
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有