Kodunuzdaki Gönderen: Bu işe gitmiyor
<c:forEach items="${myBean.myMap.keySet}" var="var">
. Bu, the Map
interface'da getKeySet()
yöntemini gerektirir, ancak yok.
<c:forEach items="#{myBean.myMap.keySet()}" var="key">
<h:outputText value="#{key}"/>
</c:forEach>
Veya: Ortamınız EL 2.2 destekliyorsa
(Servlet Tomcat 7, GlassFish 3, vs gibi 3,0 kaplar), o zaman bir özellik olarak bunu aramak yerine direkt keySet()
yöntemi çağırmak gerekir ortamınızın henüz EL 2.2 desteklemiyorsa, o zaman da bir getKey()
method olan her tekrarında bir Map.Entry
instance verir haritası doğrudan kendisi üzerinde yineleme gerektiğini, bu nedenle bu yanı yapmalıdır:
<c:forEach items="#{myBean.myMap}" var="entry">
<h:outputText value="#{entry.key}"/>
</c:forEach>
Yukarıdakilerin hiçbiri, Map
veya Set
desteklemediği için <ui:repeat>
ile çalışmamaktadır. List
ve yalnızca diziyi destekler. <c:forEach>
ve <ui:repeat>
arasındaki fark, görüntü oluşturma süresi sırasında <c:forEach>
'un birden fazla JSF bileşeni oluşturduğu ve <ui:repeat>
görüntü işleme süresi sırasında HTML çıktısını birçok kez üreten tek bir JSF bileşeni oluşturduğu şeklindedir.
ben bunu anladım. SO bana izin verdiğinde 8 saat içinde yayınlayacağım. – Adam