2014-01-09 1 views
0

Я хочу пропустить несколько значений внутри g: каждый тег. Я хочу реализовать функциональность работы Java «продолжить». напримерGrails: использование «continue» (ключевое слово Java) на странице gsp внутри метки <g:each>

<g:each ......> 
<g:if....> 
// continue 
</g:if> 
//Some other logic 
</g:each> 

Надеюсь, вопрос ясен.

+0

вы действительно нуждаетесь в 'continue' ключевое слово, или просто хотите обработать только некоторые элементы? –

+0

Я хочу пропустить обработку некоторых элементов. –

+1

Почему нет Работа в этом случае? – marko

ответ

3

Если вы хотите пропустить некоторые элементы, используйте Groovy и .findAll.

Например, если вы хотите показать только items со свойством showVal > 10:

<g:each in="${items.findAll { it.someVal > 10 }}"> 
//Some logic 
</g:each> 

Или <g:if>/<g:else>, если вы не хотите, чтобы коснуться Groovy внутри ваших взглядов.

+0

Спасибо. Совсем похоже на то, что я искал. –

1

Тег each использует метод Groovy each, и он вызывает закрытие для каждой итерации. Закрытия называются подобными методами, поэтому вы должны return от each, чтобы пропустить этот элемент; continue недействителен, потому что это не настоящий Java-цикл.

Таким образом, вы можете использовать скриптлет, чтобы вернуться, если условие:

<g:if....> 
<% return %> 
</g:if> 
Смежные вопросы