Java Struts2 jQuery UI操作列表中的动态菜单

Java Struts2 jQuery UI操作列表中的动态菜单,java,jquery-ui,jsp,struts2,struts2-jquery,Java,Jquery Ui,Jsp,Struts2,Struts2 Jquery,如何从操作时生成的列表生成动态菜单和菜单项? 我尝试过这种方法,但它只生成主菜单,而不生成子菜单 行动类: JSP: 我可以做些什么来获取带有菜单项的菜单 示例类结构: 如何在JSP页面中使用sj:menu标记配置它?查看struts2的迭代器标记 它将java.util.Collection作为输入,并对其值进行迭代。标记从列表值生成一个菜单,以创建您应该在标记体中使用的子菜单 也可以在主体中使用标记 您可以找到详细的解释和示例。感谢Roman的回复,我如何使用这些struts jquery标

如何从操作时生成的列表生成动态菜单和菜单项? 我尝试过这种方法,但它只生成主菜单,而不生成子菜单

行动类:

JSP:

我可以做些什么来获取带有菜单项的菜单

示例类结构:


如何在JSP页面中使用sj:menu标记配置它?

查看struts2的迭代器标记

它将java.util.Collection作为输入,并对其值进行迭代。

标记从列表值生成一个菜单,以创建您应该在标记体中使用的子菜单

也可以在主体中使用标记


您可以找到详细的解释和示例。

感谢Roman的回复,我如何使用这些struts jquery标记创建动态菜单、带有操作填充属性列表的菜单项。是否可以将它们与迭代器标记一起使用,或者如果我想使用sj:menu的列表属性值,那么包含菜单、菜单项和菜单项、菜单数据的列表结构应该是什么。您可以对菜单或菜单项使用迭代器标记,列表是包含菜单项的简单结构,不能包含子菜单。
private List<String> menuList = new ArrayList<String>();
public String execute(){
    menuList.add("Menu1");
    menuList.add("Menu2");
    menuList.add("Menu3");
    menuList.add("Menu4");
    return "success";
}
public List<String> getMenuList() {
    return menuList;
}
public void setMenuList(List<String> menuList) {
    this.menuList = menuList;
}
<sj:menu cssStyle="width:50%" list="menuList" />
public class Menu {
    private String id;
    private List<MenuItem> menuItems;

    public Menu(String id, List<MenuItem> menuItems){
        this.id = id;
        this.menuItems = menuItems;
    }

    public String getId() {
        return id;
    }
    public void setId(String id) {
        this.id = id;
    }
    public List<MenuItem> getMenuItems() {
        return menuItems;
    }
    public void setMenuItems(List<MenuItem> menuItems) {
        this.menuItems = menuItems;
    }   
}



public class MenuItem {
    private String title;
    private String href;
    private Menu menu;  // submenu

    public MenuItem(String title, String href, Menu menu){
        this.title = title;
        this.href = href;
        this.menu = menu;
    }

    public String getTitle() {
        return title;
    }
    public void setTitle(String title) {
        this.title = title;
    }
    public String getHref() {
        return href;
    }
    public void setHref(String href) {
        this.href = href;
    }
    public Menu getMenu() {
        return menu;
    }
    public void setMenu(Menu menu) {
        this.menu = menu;
    }   
}