bean:writeでMap型プロパティのとりだし

何度かやっているのだが結構わすれてしまうのでメモ。

Beanの中のMap型プロパティを取り出す際、通常は

<bean:write name="Bean名" property="mapのキー"/>
あるいは
<bean:write name="Bean名" property="プロパティー名.mapのキー"/>
で問題ないのだが、原則としてキーはString型であることが要求される。


////////////////////////////////////////////////////////////////////////
<%@ page import="java.lang." %>
<%@ page import="java.util.
" %>

/たとえばCookieにセットされている商品コードをMapのキーとする場合/

<bean:cookie id="itemdata" name="mbMtCode" value="1" />    //デフォルト値
<bean:define id="code" name="itemdata" property="value"/>

/* オブジェクトのMapプロパティをセット */

<bean:define id="goodsData" name="GoodsValue" property="priceList" type="java.util.Map"/>
<%
     Integer price = (Integer) goodsData.get(new Integer(code.toString()));
     pageContext.setAttribute("price", price);
%>
<bean:write name="price" />