2013-11-25 43 views
1

如何從Action中生成的列表中生成動態菜單&菜單項? 我試過這種方法,但它只生成主菜單,但不生成子菜單。Struts2動作列表中的jQuery UI動態菜單

<sj:menu cssStyle="width:50%" list="menuList" /> 

我能做些什麼來讓菜單與菜單項:

Action類:

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; 
} 

JSP?

示例類結構。

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; 
    } 

}

如何在JSP頁面sj:menu標籤配置呢?

回答

0

看看struts2的(link)

的迭代器標籤它需要一個java.util.Collection中作爲輸入超過其價值的迭代。

0

sj:menu標籤根據列表值生成一個菜單,創建子菜單,您應該在sj:menu標籤的主體中使用sj:menuItem。同樣在sj:menuItem的正文中,您可以使用sj:menu標籤。詳細的解釋和例子你可以找到here

+0

感謝羅馬的回覆,我如何使用這些struts-jquery標籤創建動態菜單,帶有動作填充屬性列表的菜單項。是否有可能使用它們與迭代器標籤,或者如果我想使用sj:menu的列表屬性值什麼應該是包含菜單,menuitems&menuitems,菜單數據的List的結構。 –

+0

您可以對菜單或菜單項使用迭代器標記,該列表是一個包含菜單項的簡單結構,不能包含子菜單。 –