[richfaces-issues] [JBoss JIRA] Created: (RF-10203) a4j:repeat / ui:repeat not working with rich:toolbar and rich:dropDownMenu

Karl Mueller (JIRA) jira-events at lists.jboss.org
Thu Jan 13 09:12:49 EST 2011


a4j:repeat / ui:repeat not working with rich:toolbar and rich:dropDownMenu
--------------------------------------------------------------------------

                 Key: RF-10203
                 URL: https://issues.jboss.org/browse/RF-10203
             Project: RichFaces
          Issue Type: Bug
      Security Level: Public (Everyone can see)
          Components: component-menu
    Affects Versions: 4.0.0.Milestone5
         Environment: Windows Vista Build 6001
apache-tomcat-7.0.5
Sun jdk1.6.0_14
RichFaces 4.0.0.20101226-M5
Mojarra JSF 2.0.3-FCS 
            Reporter: Karl Mueller


Hi I was trying this :

		<rich:toolbar height="26px">
			<a4j:repeat value="#{menuBean.menuGroups}" var="menuGroup">
				<rich:dropDownMenu mode="ajax">
					<f:facet name="label">
                        <h:outputText value="#{menuGroup.menuName}" />
                </f:facet>
                	<a4j:repeat value="#{menuGroup.menuElements}" var="menuElement">
                	 	<rich:menuItem label="#{menuElement.label}" action="#{menuElement.targetURL}" />
                	</a4j:repeat>
				</rich:dropDownMenu>
			</rich:toolBarGroup>
			</a4j:repeat>
		</rich:toolbar>

The outer repeat works, but creates 2 menus which are stacked above each other.The inner repeat is not processed at all. (I have added a log statement to the getMethods, therefore I know that they never get called at all.)

The behavior does not change when swapping a4j:repeat with ui:repeat.


When trying this the inner repeat is processed as expected.

		<a4j:repeat value="#{menuBean.menuGroups}" var="menuGroup">
                        <h:outputText value="#{menuGroup.menuName}" />
                	<ui:repeat value="#{menuGroup.menuElements}" var="menuElement">
                	 	<h:outputText value="#{menuElement.label}"  />
                	</ui:repeat>
			</a4j:repeat>

So is this a bug or rather a case of menu tags misusage ?


My backingBeans look like this:
(sry, but I do not have the permission to attach files)


@ManagedBean(name="menuBean")
@SessionScoped
public class MenuBean {

    private List<MenuGroup> menuGroups = new ArrayList<MenuGroup>();

    //TODO Remove hard coded menus
    public MenuBean(){
        System.out.println(">>I AM!<<");
        init();
    }


    private void init(){
        //FIXME
        MenuGroup m1 = new MenuGroup();
        m1.setMenuName("Sysadmin");

        MenuElement element = new MenuElement();
        element.setLabel("Key");
        element.setTargetURL("/sysadmin/key/key.xhtml");
        m1.getMenuElements().add(element);
        menuGroups.add(m1);

        MenuGroup m2 = new MenuGroup();
        m2.setMenuName("Test");

        element = new MenuElement();
        element.setLabel("Kontext");
        element.setTargetURL("/temp/temp_context.xhtml");
        m2.getMenuElements().add(element);

        menuGroups.add(m2);
    }
    /**
     * @return the menuGroups
     */
    public List<MenuGroup> getMenuGroups() {
        return menuGroups;
    }


    /**
     * @param menuGroups the menuGroups to set
     */
    public void setMenuGroups(List<MenuGroup> menuGroups) {
        this.menuGroups = menuGroups;
    }

}

public class MenuGroup {

    private String menuName = null;

    List<MenuElement> menuElements = new ArrayList<MenuElement>();


    /**
     * @return the menuElements
     */
    public List<MenuElement> getMenuElements() {
        return menuElements;
    }

    /**
     * @param menuElements the menuElements to set
     */
    public void setMenuElements(List<MenuElement> menuElements) {
        this.menuElements = menuElements;
    }

    /**
     * @return the menuName
     */
    public String getMenuName() {
        return menuName;
    }

    /**
     * @param menuName the menuName to set
     */
    public void setMenuName(String menuName) {
        this.menuName = menuName;
    }
}

public class MenuElement {

    private String label;
    private String targetURL;

    /**
     * @return the label
     */
    public String getLabel() {
        System.out.println(">>label>>" + label);
        return label;
    }

    /**
     * @param label the label to set
     */
    public void setLabel(String label) {
        this.label = label;
    }

    /**
     * @return the targetURL
     */
    public String getTargetURL() {
        return targetURL;
    }

    /**
     * @param targetURL the targetURL to set
     */
    public void setTargetURL(String targetURL) {
        this.targetURL = targetURL;
    }

}




-- 
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        


More information about the richfaces-issues mailing list