Как написать цикл с нечетной последовательностью в шаблоне Apache FreeMarker?Петля с нечетной последовательностью
, например:
<#list seq as n>
...?
${n_index}
</#list>
В результате: 1,3,4,5 ..
Как написать цикл с нечетной последовательностью в шаблоне Apache FreeMarker?Петля с нечетной последовательностью
, например:
<#list seq as n>
...?
${n_index}
</#list>
В результате: 1,3,4,5 ..
Используйте оператор Modulus.
<#list seq as n>
<#if n % 2 == 1>
<#-- your code here -->
</#if>
</#list>
Предполагая, что вы на самом деле хотите, чтобы напечатать 1-й, 3-й, 5-й и т.д. элемент последовательности, в отличие от фильтрации по четности элемента списка (n
) сам по себе ... Если результат 1, 2 и т. Д., То либо вы действительно хотите четные элементы, либо хотите, чтобы n?counter
был основан на 1, а не n?index
, который основан на 0. Если предположить, что последний (плюс я также распечатать сам элемент):
<#list seq as n>
<#if n?is_odd_item>
${n?counter}: ${n}
</#if>
</#list>
Похожие страницы в руководстве: http://freemarker.org/docs/ref_builtins_loop_var.html
Но то, что 'x' в вашем примере? Во всяком случае, теперь есть 'n? Is_odd_item'; см. мой ответ. – ddekany
@ddekany действительно, это n, исправлено – Szeki
Предполагая, что это 'n' нужно проверить, а не его позицию в последовательности ... Я не уверен, как OP написал' $ {n_index} ', а не' $ {п} '. – ddekany