2015-06-15 5 views
0

У меня есть цикл в GSP так:Перерыв в г: если/г: каждый

<g:each in="${personInstance.followed}" var="c" > 
      <g:if test="${c.equals(person)}"> 
      <g:link id="${person.id}" action="unfollow" controller="message">unfollow</g:link> 
      </g:if> 
</g:each> 

Как я могу использовать перерыв в г: каждый или г: если? Любые идеи?

+1

В логических тегах 'g: if' или' g: each' нет понятия 'break'. Что вы пытаетесь достичь? Из кода, который вы опубликовали, неясно. –

+0

Мне нужно разбить этот цикл, если true, если true. – tommy

+0

Итак, у вас есть коллекция 'person' в свойстве' personInstance.followed', и вам нужно отобразить что-то, если эта коллекция содержит 'person'? Это правильно? Если так, то есть намного лучший способ сделать это (что я могу объяснить в ответе). –

ответ

0

Звучит так, как будто вы хотите отображать ту или иную вещь, если экземпляр находится внутри коллекции. Лучше всего использовать contains в коллекции. Например:

<g:if test="${personInstance.followed.contains(person)}"> 
    Display your unfollow stuff here ... 
</g:if> 
<g:else> 
    Display your follow stuff here ... 
</g:else> 
0

Вообще в Groovy и GSP вам не нужно break и то, что вы действительно хотите использовать findAll тег, который фильтрует на состоянии так ваша логика стала бы (непроверенные пример кода):

<g:findAll in="${personInstance.followed}" expr="c.equals(person)" var="c" > 
     <g:link id="${person.id}" action="unfollow" controller="message">unfollow</g:link> 
</g:findAll> 
Смежные вопросы