无法使用Grails Controller中的“render”呈现表单标记

时间:2009-10-09 16:08:50

标签: grails groovy controller render

在渲染中使用标记不会添加表单标记。

我尝试使用contentType“text / html”,“txt / xml”,但它不起作用。

我在控制器中有这个:

 def myTest= {
    render(contentType: "text/plain") {
        div(id:"myDiv") {
            p "somess text inside the div"
            form (action:'get') {
                p "inside form"
            }
        }
    }

我得到了这个:

<div id='myDiv'><p>somess text inside the div</p><p>inside form</p></div>

我想要这个:

<div id='myDiv'><p>somess text inside the div</p><form><p>inside form</p></form></div>

有人知道为什么不添加表单以及如何添加表单?

谢谢,

费德里科

1 个答案:

答案 0 :(得分:2)

我之前发现了这个问题,解决方法是直接使用构建器

def test = {
    def sw = new StringWriter()
    def b = new MarkupBuilder(sw)
    b.html(contentType: "text/html") {
        div(id: "myDiv") {
            p "somess text inside the div"
            b.form(action: 'get') {
                p "inside form"
            }
        }

    }
    render sw
}

将呈现以下HTML

<html contentType='text/html'>
  <div id='myDiv'>
    <p>somess text inside the div</p>
    <form action='get'>
      <p>inside form</p>
    </form>
  </div>
</html>