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

时间:2011-12-13 14:19:26

标签: list grails controller views

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个。

2 个答案:

答案 0 :(得分: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>

答案 1 :(得分: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。