带有单独主 Controller View 的 Grails Controller 填充菜单

标签 grails gsp grails-controller

我正在尝试创建一个成员(member)目录。我已经填写好目录并准备好了。我正在使用 main.gsp 布局并为其创建了模板。

侧面导航栏需要由成员所属的委员会和董事会填充。我已经通过一个单独的域和 Controller 创建了它。它创建的 View 创建了将committee.id 的搜索参数传递到成员页面的链接,以对成员列表进行排序。

我正在尝试在整个站点布局中使用委员会控件填充该侧导航栏,但是当我测试该站点时,模板部分没有填充。它只是在选择我创建以测试我的输出的委员会 Controller 页面时填充。我相信我错过了对 Controller 的调用或一些使该 View 在整个站点中而不是仅在 Controller 页面上处于事件状态的引用。

我正在使用 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>

该 View 的 Controller 被动态调用。

最佳答案

是的。仅当您访问该特定 Controller 的操作时才会填充侧面导航栏。您有 2 个选项,在每个 Controller 的操作中计算此值,该操作将使用带有侧面导航栏的 View 或使用过滤器

如果您希望在每个页面上都有此信息,我建议您尝试使用过滤器使其可访问。您可以检索医院每次加载页面。

如果您在应用程序中使用安全插件,例如 Shiro 或 SpringSecurity,您可以将这个位放在那里。

关于带有单独主 Controller View 的 Grails Controller 填充菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29500833/

相关文章:

grails - 如何将 i18n 与 Grails radioGroup 一起使用?

Grails "render"渲染模板

grails - 如何使用grails导出插件放置pdf的标题中心?

rest - Grails POST请求字符集编码

hibernate - Grails 命名 id 列错误

grails - 从 NavigableMap 构建菜单

java - 如何使用 Tomcat 上的 Grails 在我的网络应用程序(用于上传相册)中创建一个新文件夹?

Grails - Controller 如何连接两个表并在一个 gsp 上显示?

grails - 使用Grails存储图像,但无法在生产环境中存储在CATALINA_HOME外部

使用 Neo4j 托管 Grails 来读取/写入文件