- PR -

JSTL1.0(EL)でのMapの要素数の参照方法

1
投稿者投稿内容
ryoichi
常連さん
会議室デビュー日: 2003/09/12
投稿数: 30
投稿日時: 2005-06-22 10:39
JSTL1.0にて、以下のようなforEachを行い明細を表示したいのですが、
明細が1件もない場合、タイトルの表示を抑制したいと考えています。
<c:forEach var="item" items="${ itemlistobject.items }" >

そこで、
<c:if test="${ itemlist.items.count > 0 }"/>
<c:if test="${ itemlist.items.length > 0 }"/>
<c:if test="${ itemlist.items.size > 0 }"/>
等とやってみるのですが、どうやら items['length']、items['size']
と判断されているようで、
=====
javax.servlet.jsp.JspTagException: javax.servlet.jsp.JspException:
値 "${ itemlist.items.count > 0 }" のセットされたカスタム・アクション
属性 "test" を評価している過程でエラーが発生しました:
"." オペレータによって List もしくは配列に適用された
"java.lang.String" 型のインデックス値を供給しましたが、
そのインデックス値を整数値へ変換することはできません (null)
=====
と、エラーが発生します。

JSTL1.1なら、<fn:length>が使えるのかな?と考えていますが、JSTL1.0
で、Mapの件数を取得する方法は無いのでしょうか?
Anthyhime
ぬし
会議室デビュー日: 2002/09/10
投稿数: 437
投稿日時: 2005-06-22 16:06
emptyで評価可能です。
ryoichi
常連さん
会議室デビュー日: 2003/09/12
投稿数: 30
投稿日時: 2005-06-28 19:55
引用:

emptyで評価可能です。


返事が遅れましたが、empty関数で確認できる事を確認しました。

また、以下の資料によると、Unstandard Tag Libraryにても
評価可能で動作も大丈夫でした。
http://www.ad.cyberhome.ne.jp/~milmil/java/JSTL.pdf
1

スキルアップ/キャリアアップ(JOB@IT)