pátek 29. července 2011

Dynamické dropDownMenu v RichFaces

V práci jsem se na projektu dostal k vytváření webového GUI. Zkoušíme použít RichFaces a hned na úvod jsem narazil na několik problémů, které bych chtěl postupně popsat. Nyní tedy k dynamickému rich:dropDownMenu.
DropDownMenu je pěkná komponenta, která umožňuje víceúrovňové vnořování, obrázky u odkazů a mnoho dalšího. Chtěl jsem toto menu, resp. jeho položky generovat automaticky, protože chceme mít v aplikaci různé úrovně práv a navíc nechceme mít položky napevno zadrátované v kódu. Po prostudování dokumentace jsem zjistil, že to nebude tak jednoduché...
Nakonec jsem řešení nalezl - musí se využít c:forEach funkce, pomocí níž můžeme iterovat:

 <c:foreach items="#{dropDownMenuBean.polozky}" var="polozka">  
   <rich:menuitem submitmode="ajax" value="#{polozka}">  
 </rich:menuitem></c:foreach>  

Má předchozí snaha použít tag a4j:repeat se nesetkala s úspěchem. Jak jsem se později dočetl, je to proto, že dropDownMenu očekává tag menuitem.
Po zadání foreach se mi objevila chyba - c:foreach neznámý tag. Zapomněl jsem totiž do hlavičky vložit definici namespace:
xmlns:c="http://java.sun.com/jstl/core"
Příště sepíšu své zkušenosti se sestavováním vývojového prostředí.

Žádné komentáře: