2011-12-13 52 views
0

index.gsp中:如何在grails應用程序的index.gsp中僅列出一些控制器?

<g:each var="c" in="${grailsApplication.controllerClasses.sort { it.fullName } }"> 
      <li class="controller"><g:link controller="${c.logicalPropertyName}">${c.fullName}</g:link></li> 
    </g:each> 

這將創建所有現有的控制器的列表。我需要的僅僅是一些特定控制器的清單。有沒有辦法做到這一點?

例如:我的應用程序有17個控制器,所有這些都顯示出來。我只想顯示5。

回答

3

你可以添加一個靜態變量到你的控制器來確定控制器是否應該出現在你的gsp中。

在控制器:

static Boolean linkMe = true 

在GSP:

<g:each var="c" in="${grailsApplication.controllerClasses.sort { it.fullName } }"> 
    <g:if test="${c.getStaticPropertyValue('linkMe', Boolean)}"> 
     <li class="controller"> 
      <g:link controller="${c.logicalPropertyName}">${c.fullName}</g:link> 
     </li> 
    </g:if> 
</g:each> 
+0

嗨,謝謝你的解決方案! – Dave

1

如果(舉例來說)您只希望UserControllerLoginController要顯示

<g:each var="c" in="${[UserController, LoginController]}">    
    <li class="controller"> 
    <g:link controller="${c.logicalPropertyName}">${c.fullName}</g:link> 
    </li> 
</g:each> 

記得導入類這些控制器到GSP。

+0

你好,感謝你的解決方案! – Dave

相關問題