[mayaa-user:778] Re: ループのMAXの最大値について

suga [E-MAIL ADDRESS DELETED]
2009年 5月 2日 (土) 14:05:16 JST


suga です。

2009/5/2  <[E-MAIL ADDRESS DELETED]>:
> <m:for>タグのMAX属性の規定値は「256」という事で記述はされているのでわかりました。
> そこで質問です。
>
> 1.MAX値の最大値は1万、2万件など指定しても大丈夫でしょうか?
> PCスペック(メモリなど)を使い切るまで可能でしょうか?
> それとも、Mayaa内で上限が設定されているのでしょうか?

Mayaa 側では特に制限はありません。
条件の指定を失敗して無限ループになることを防ぐためのものです。
http://mayaa.seasar.org/documentation/processor_reference.html#for

ちなみに Integer.MAX_VALUE が指定可能な上限です。


> 2.MAX値を指定し、その件数をオーバーした場合のエラーをCatchすることは可能でしょうか?
> Java側で「MAX値以下」の制御をしなければならないのでしょうか?

jstl の c:catch を使えば catch できます。例外クラスはリファレンスの
通り org.seasar.maya.impl.engine.processor.TooManyLoopException です。

が、max 以上になることがアプリケーション的に意味を持つなら、その役割を
持つところで制御するべきでしょう。
たとえば画面上の表示件数を制限することを m:for で実現するなら after の条件で
指定するか m:forEach を使う方が良いでしょうし、ページ切り替えを考えるなら
上限数未満のものを mayaa (または jsp など) に渡すべきでしょう。

私は、この max は保険だと考えていますので、これにひっかかるのは文字通り
「例外」な場合だと思います。


-- 
suga ( [E-MAIL ADDRESS DELETED] )


mayaa-user メーリングリストの案内