[mayaa-user:317] Re: スクリプトからのMapのメソッドの呼び出しについて
suga
ko.suga @ gmail.com
2006年 11月 8日 (水) 14:52:39 JST
suga です。
On 11/7/06, Hideyasu YOSHIDA <hideyasu.yoshida @ gmail.com> wrote:
> 取り出すことはできるのですが、Mapの場合は取り出すことができないようです。
結論から説明しますと、key が変わっているため取得できない
状態になっています。
スクリプトと JavaObject との変換部分で数値クラスが変わる
動作が原因です。(バグですね)
> Map<Long, String> vals1 = new HashMap<Long, String>();
> vals1.put(null, null);
> vals1.put(new Long(0), new String("A"));
> vals1.put(new Long(1), new String("B"));
> <!-- (1) 何も出力されず -->
> <m:forEach m:id="loop1" items="${keys}" var="key">
> <m:write m:id="ele1" value="${vals1.get(key);}"/>
> </m:forEach>
この例では、次の 3 つの方法のいずれかで意図された動作に
なります。
・key を文字列にする
・vals1.get(new java.lang.Long(key)) とする
・m:for にする (key を Java <-> JavaScript 変換しない)
<m:for m:id="loop1" init="${ var i = 0 }" test="${ keys.size() > i
}" after="${ i++ }" />
<m:write m:id="ele1" value="${vals0.get(keys.get(i));}"/>
申し訳ありませんが、対応に時間がかかるかもしれませんので、
上記対応のいずれかで回避しておいていただけますでしょうか。
よろしくお願いします。
--
suga ( ko.suga @ gmail.com )
mayaa-user メーリングリストの案内