Как мне перечислить только некоторые контроллеры в index.gsp приложения grails? - PullRequest
0 голосов
/ 13 декабря 2011

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 ]

3 голосов
/ 13 декабря 2011

Вы можете добавить статическую переменную в свой контроллер, чтобы определить, должен ли контроллер появляться в вашем gsp.

В контроллере:

static Boolean linkMe = true

В ГСП:

<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 голос
/ 13 декабря 2011

Если (например) вы хотите, чтобы отображались только UserController и LoginController

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

Не забудьте импортировать классы для этих контроллеров в GSP.

...