私は次のようMap
に初期化するキー/値を持って@PostConstruct
います:
Map<String, String> myMap;
@PostConstruct
public void init() {
myMap=new LinkedHashMap<String, String>();
myMap.put("myKey","myValue");
}
public Map<String, String> getMyMap() {
return myMap;
}
public void setMyMap(Map<String, String> myMap) {
this.myMap = myMap;
}
以下に示すようにこのマップを反復処理しようとし<ui:repeat>
、マップのゲッターにブレークポイントを設定すると、マップが呼び出されていないことに気付き、何も出力されません。
<ice:panelGroup>
<ui:repeat items="#{myBean.myMap}" var="entry" varStatus="loop">
<input type="checkbox" name="myCheckBoxes" value="#{entry.value}" />
<span class="#{fn:contains(entry.value,'g') ? 'bold-style' : ''}">#{entry.key}</span>
</ui:repeat>
</ice:panelGroup>
しかし、上記のコードをに置き換えると<c:foreach>
、すべてが正常に機能し、リストが期待どおりに出力されます。なぜこのような動作が発生するのでしょうか。