我正在尝试创建一个成员目录。我已经把目录填好了,可以出发了。我正在使用main.gsp布局,并为其创建了模板。
侧面导航栏也需要由成员所属的委员会和董事会填充。我通过一个单独的域和控制器创建了它。它创建的视图创建链接,通过committee.id将搜索参数传递到成员页面,以对成员列表进行排序。
我试图在整个网站布局中使用委员会控制来填充侧导航栏,但当我测试网站时,模板部分不会填充。它只是在我创建的用于测试输出的委员会控制器页面被选中时填充。我相信我错过了对控制器的调用或某些引用,这些引用使此视图在整个网站上都处于活动状态,而不仅仅是在控制器页面上。
我使用的是Grails v.2.3.3
这是main.gsp.中侧面导航栏的代码
<div id="leftNav" >
<g:render template="/common/left_nav" model="[hospital:Hospital]" />
</div>
以下是在"_left_nav.gsp"中调用导航模板的位置。
<div>
<g:render template="/hospital/committee" model="[hospital:Hospital]" />
</div>
以下是在"_committee.gsp"中再次调用导航模板的位置。
<%@ page import="trustees.Hospital" %>
<div id="hospcomm" class="content scaffold-list" role="navigation">
<table>
<g:each in="${hospitalInstanceList}" status="i" var="hospitalInstance">
<tr>
<td>
<g:link controller="hospital" action="show" id="${hospitalInstance.id}">${fieldValue(bean: hospitalInstance, field: "hospitalName")}</g:link>
<%-- <g:link action="show" id="${hospitalInstance.id}">--%>
<%-- <a href="index.jsp?nav=main&hosp=<%=hospGiven %>" target="_top">--%>
<%-- <img src="/Trustees/static/images/img/navigate.msh_board.gif" border="0">--%>
<%-- </a>--%>
<%-- </g:link> --%>
</td>
</tr>
<tr>
<td>
<ul>
<g:each in="${hospitalInstance.committees}">
<li>
<g:link controller="hospital" action="show" id="${it.id}"> ${it.committeeName} </g:link>
</li>
</g:each>
</ul>
</td>
</tr>
</g:each>
</table>
</div>
正在动态调用此视图的控制器。
是。只有当您访问特定控制器的操作时,才会填充侧面导航栏。你有两个选项,在每个控制器的操作中计算这个值,该操作将使用带有侧导航栏的视图或使用过滤器
如果你想在每一页上都有这些信息,我建议你尝试使用过滤器来访问这些信息。每次加载页面时,您都可以检索医院。
如果你正在使用一个安全插件,比如Shiro或SpringSecurity作为你的应用程序的一部分,你可以在那里放置这个插件。