2015-04-07 80 views
1

我正在嘗試創建成員目錄。我已經填好目錄並準備好了。我使用main.gsp佈局併爲其創建了模板。帶有單獨主控制器視圖的Grails控制器填充菜單

側面導航欄需要由成員所屬的委員會和委員會填寫。我通過一個單獨的域和控制器創建了它。它創建的視圖使得通過委員會.id傳遞搜索參數的鏈接到成員頁面來對成員列表進行排序。

我想填充該委員會控制整個網站的佈局,但當我得到測試模板部分沒有填充網站的側導航欄。它只是在我爲創建測試輸出而選擇委員會控制器頁面時填充。我相信我錯過了對控制器的調用或一些引用,使得這個視圖在整個站點中都處於活動狀態,而不僅僅是在控制器頁面上。

我使用Grails訴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> 

該視圖的控制器被動態調用。

+0

您正在等待您的模板中有'hospitalInstanceList',但您正在使用'hospital'對象調用它。您可能需要使用列表號召您的模板? – sebnukem

回答

0

是的。只有在訪問特定控制器的操作時纔會填充側面導航欄。你有2個選項,在每個控制器的動作中計算這個值,該值將使用帶有側面導航欄的視圖或使用過濾器

如果你想在每個頁面上顯示這個信息,我會建議你試着通過使用一個過濾器。您可以在每次加載頁面時檢索醫院

如果您正在使用安全插件(例如Shiro或SpringSecurity作爲您的應用程序的一部分),則可以在此處放置此位。

相關問題