/ / डायनेमिक पैनलमेनु में रिचफेसेस - डायनेमिक, रिचफेसेस, जेपेलमेनू

गतिशील पैनलमेनू समृद्ध क्षेत्रों में - गतिशील, richfaces, jpanelmenu

मैं एक बनाने की कोशिश कर रहा हूँ panelMenu गतिशील रूप से उन वस्तुओं की सूची का उपयोग करना जो मेरे पास पहले से हैं। लेकिन यह काम नहीं करता है क्योंकि मुझे परिणाम के रूप में कुछ भी नहीं मिला। तो यहाँ मेरा कोड है:

<rich:panelMenu id="filterListFuncPost" style="width:180px"
itemMode="ajax" groupMode="ajax"
groupExpandedLeftIcon="triangleUp"
groupCollapsedLeftIcon="triangleDown"
topGroupExpandedRightIcon="chevronUp"
topGroupCollapsedRightIcon="chevronDown" itemLeftIcon="disc">
<rich:panelMenuGroup label="Functional Positions">
<c:forEach xmlns:c="http://java.sun.com/jstl/core" var="item"
items="#{reportsBacking.selectedFunctPosIndex}">
<rich:panelMenuItem label="#{item}" />
</c:forEach>
</rich:panelMenuGroup>

</rich:panelMenu>

उत्तर:

जवाब के लिए 0 № 1

जिनके लिए यह मदद कर सकता है, मुझे इसे काम करने का एक तरीका मिला, जिसका उपयोग करना है rich:list के बजाय c:forEach और यह ठीक काम करता है।


जवाब के लिए 0 № 2

अद्यतन करें: RichFaces panelMenu के लिए काम करता है, लेकिन केवल तभी जब आप सही पुनरावृत्ति का उपयोग करें। मैं नई आँखों से इस समस्या पर लौटा और एक काफी स्पष्ट समाधान पाया, लेकिन यह वहाँ पर नहीं दिख रहा है इसलिए अभी तक यह यहाँ है:

xmlns:c="http://java.sun.com/jstl/core"
xmlns:rich="http://richfaces.org/rich"

<rich:panelMenu id="menuRoot">
<rich:panelMenuGroup id="lev1menu">
<c:forEach var="fancyGroup" items="#{myBean.myFancyGroupEntity}">
<rich:panelMenuGroup label="#{fancyGroup.name}" id="lev2menu_#{fancyGroup.id}">
<c:forEach var="fancyItem" items="#{fancyGroup.items}">
<rich:panelMenuItem label="#{fancyItem.name}" action="#{myBean.viewItem}">
<a4j:actionParam name="itemId" value="#{fancyItem.id}"/>
</rich:panelMenuItem>
</c:forEach>
</rich:panelMenuGroup>
</c:forEach>
</rich:panelMenuGroup>
</rich:panelMenu>

यह काम क्यों करता है? जेएसटीएल के मुख्य घटकों को बीसीयूएस में रखा जाता है और जेएसएफ घटकों (या ऐसा कुछ) से पहले संसाधित किया जाता है और इसलिए सी: फॉरएच जेएसएफ से पहले सभी रिचफेसेस (या अन्य जेएसएफ) बच्चे घटकों को प्रस्तुत करता है और संसाधित किया जाता है। इसलिए पैनलमेनू में सही प्रकार के बच्चे होते हैं जब तक कि यह पार्स नहीं हो जाता।

OLD: RichFaces panelMenu के साथ काम कियाorg.richfaces.component.UIPanelMenu) घटक।

मैंने डेटाबेस आइटम्स का उपयोग करके एक समान दृष्टिकोण की कोशिश कीगतिशील रूप से मेनू का एक पदानुक्रम उत्पन्न करने के लिए, लेकिन जब यह सर्वर की तरफ पार्स करने का प्रयास करता है तो RichFaces किसी भी बच्चों को या तो पैनल बनाने की कोशिश करता है। ClassCastException से कास्ट करने की कोशिश कर रहा है com.sun.facelets.component.UIRepeat, जो आपके जेएसटीएल फॉरएच इट्रेशन घटक के लिए समान होगा (जो कि एक उदाहरण है org.apache.taglibs.standard.tag.rt.core.ForEachTag सर्वर पर, मुझे लगता है)।