2012-11-14 10 views
10

私はGSPファイルを持っています。コントローラーから値が得られます。たとえば、${paramsValue?.ruleCount}は3であり、それに基づいてテーブル行を作成する必要があります。GSPでループする方法は?

<g:each in="${(1..paramsValue?.ruleCount).toList()}" var="count" > 
    ... 
</g:each> 

についてGSP

答えて

21

何でそれを行う方法はありますか?

しかし、あなたはあなたのコントローラに表示されるコンテンツのリストを作成します場合、それはよりよいだろう...

更新:

はちょうどそれを試して与えた:

<% def count=5 %> 
<g:each in="${(1..count).toList()}" var="c" > 
    ${c} 
</g:each> 

働く

<% def count=5 %> 
<g:each in="${1..count}" var="c" > 
    ${c} 
</g:each> 

も短くなります。

更新2:

URLパラメータを数えたいと思うようです。このコードはその場合に有効です:

<g:each in="${params.count?1..(params.count as Integer):[]}" var="c" > 
    ${c} 
</g:each> 

カウントパラメータがあるかどうかをチェックします。そうでない場合は、空リストを返して繰り返し処理します。 countが設定されている場合、それはIntegerにキャストされ、Rangeを作成し、それを暗黙的にリストに変換して反復処理します。

+2

'in =" $ {1.paramsValue.ruleCount} "'は動作しませんか? – sync

+0

いいえ、それは動作しません – Siva

+0

あなたが得ているエラーメッセージは何ですか?あなたの 'paramsValue ?.ruleCount'は数字ではないかもしれませんか? 'paramsValue?.ruleCount as Integer'を試してください。 – rdmueller

関連する問題