在另一个视图gsp中使用一个视图gsp

时间:2013-06-18 16:09:43

标签: grails groovy render gsp

所以我的问题很有希望,非常简单。

我有两个不同的域,带有相应的控制器/视图文件夹等。

我想从第一个_form.gsp调用第二个_form.gsp(在ag:each中,因为会有多个东西要显示)并传入第二个_form.gsp的相关数据来渲染,怎么做我这样做?

我知道我可以使用g:render template =“myotherForm”但我不知道如何将它指向另一个视图文件夹或如何传递细节......

先谢谢,如果需要更多信息,请告诉我......

2 个答案:

答案 0 :(得分:3)

你可以Refer this

Grails使用在视图名称前面放置underscore的惯例来将其标识为模板。

示例grails-app/views/book/_bookTemplate.gsp:

<div class="book" id="${book?.id}">
   <div>Title: ${book?.title}</div>
   <div>Author: ${book?.author?.name}</div>
</div>

然后使用渲染标记

<g:render template="bookTemplate" model="[book: myBook]" />

答案 1 :(得分:2)

你是对的,<g:render是正确的工具。默认情况下,对于template="myOtherTempalte",它在当前目录中查找tempalte,但如果它来自另一个控制器,则可以传递完整路径。像template="/forms/myOtherTemplate"一样。并使用model=""传递参数,与内部控制器相同:

<g:each in="${things}" var="x">
  <g:render template="/forms/myOtherTemplate" model="${thing: x}"/>
</g:each>