0

访问不同控制器视图中的一个实例以及 Grails 中它自己的实例?我的场景:

带有列出所有状态的 _list.gsp 模板的状态控制器。用户实例具有政治档案和教育档案。我想将 _list.gsp 渲染到政治的 list.gsp 或教育的 show.gsp 我的状态的 _list.gsp 如下所示:

<g:each in="${statusInstanceList}" status="i" var="statusInstance">
<td>${fieldValue(bean: statusInstance, field: "statusMessage")}</td>

我想像这样在政治档案上呈现 _list.gsp 模板

<g:each in="${politicItemList.sort{it.dateCreated}}" status="i" var="politicItemInstance">
                <tr class="${(i % 2) == 0 ? 'odd' : 'even'}">
                  <td>${fieldValue(bean: politicItemInstance, field: "politicItemName.name")}
    <g:render template="/status/list"/>

rest 工作正常,但它没有加载值我不确定如何使类或实例在全球范围内或在应用程序的所有区域中可用。

4

1 回答 1

1

您可以清楚地看到,模板 _list.gsp 使用statusInstanceList的模板应该从与呈现模板的操作相关的模型中获取。在这种情况下,来自Status控制器的操作。

您正在尝试在政治档案中呈现此模板。为了呈现_list.gsp模板,您必须为模板提供statusInstanceList. 对?你怎么能那样做?

在渲染模板之前,您必须remoteFunction调用 Status 控制器以获取状态列表,或者将状态列表添加到 politic profile 模型并将其传递给 _list 模板。

以编程方式,例如:

Status Controller:-

def statusAction(){
   render(template: "list", model: [statusInstanceList: statusInstanceList])
}

Profile controller:=

def profileAction(){
   //Get the statusInstanceList here to set in the model somethinglike
   def actionResponse = g.include(action: 'statusAction', controller: 'status')
   def statusInstanceList = actionResponse.statusInstanceList
   render(template: "profilelist", model: [politicItemList: politicItemList, statusInstanceList: statusInstanceList])
}

You can do something like:

_profileList.gsp

<g:each in="${politicItemList.sort{it.dateCreated}}" status="i" var="politicItemInstance">
                <tr class="${(i % 2) == 0 ? 'odd' : 'even'}">
                  <td>${fieldValue(bean: politicItemInstance, field: "politicItemName.name")}
    <g:render template="/status/list" model="[statusInstanceList: statusInstanceList]"/>

如果您不想在 Profile Controller 中获取 Status Action 的响应,则可以g:include在 profileList 模板中添加为

<g:include controller="status" action="statusAction" />

这将包括从状态操作到 profileList 模板的响应。看详情。

于 2013-05-23T03:05:46.127 回答