Struts2 jQuery UI динамично меню от списък с действия

Как мога да генерирам динамично меню и елементи от менюто от списък, генериран в 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:

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

Как да конфигурирате това в JSP страница с sj:menu таг?


person Dyapa Srikanth    schedule 25.11.2013    source източник


Отговори (2)


Тагът <sj:menu> генерира меню от списък със стойности, за да създадете подменю, трябва да използвате <sj:menuItem> в тялото на таг <sj:menu>.

Също така в тялото на <sj:menuItem> можете да използвате <sj:menu> таг.

Подробното обяснение и пример можете да намерите тук.

person Roman C    schedule 25.11.2013
comment
Благодаря, Роман за отговора ти, как мога да използвам тези тагове struts-jquery, за да създам динамично меню, елементи от менюто със списък със свойства, изпълнен с действие. Възможно ли е да ги използвам с маркер на итератор, или ако искам да използвам стойността на свойството на списък на sj:menu, каква трябва да бъде структурата на списъка, който съдържа меню, елементи от менюто и елементи от менюто, данни от менюто. - person Dyapa Srikanth; 26.11.2013
comment
Можете да използвате таг итератор за менюта или елементи от менюто, списъкът е проста структура, която съдържа елементи от менюто, които не могат да съдържат подменюта. - person Roman C; 26.11.2013

Разгледайте маркера на итератора на struts2 (връзка)

Необходим е java.util.Collection като вход за итерация на неговите стойности.

person Saif Asif    schedule 25.11.2013