[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 メーリングリストの案内