Struts-Menu简单实例

Struts-Menu是一个用来生成页面导航菜单的标签库,需要Struts的支持。用来存放父子关系等数据比较方便。实例:

	public static void main(String[] args){
		test2();
	}
	
	public static void test2(){
		MenuRepository rep = new MenuRepository();
		MenuComponent menu0 = new MenuComponent();
		menu0.setName("n0") ;
		menu0.setTitle("t0") ;
		rep.addMenu(menu0);
		
		for(int i = 1; i < 5; i++){
//			构建菜单
			MenuComponent menu = new MenuComponent();
			menu.setName("n" + i) ;
			menu.setTitle("t" + i) ;
			menu.setParent(rep.getMenu("n0"));
			
			rep.addMenu(menu);
		}
		MenuComponent[] childs = menu0.getMenuComponents();
		for(MenuComponent tmp : childs){
			MenuComponent m = rep.getMenu(tmp.getName());
//			System.out.println("--before remove n1--"+m);
			if(m != null){
				System.out.println("--before remove n1--"+m.getName());
			}
		}
		//移除
		rep.removeMenu("n1");
		
		childs = menu0.getMenuComponents();
		for(MenuComponent tmp : childs){
			MenuComponent m = rep.getMenu(tmp.getName());
//			System.out.println("--after remove n1--"+m);
			if(m != null){
				System.out.println("--after remove n1--"+m.getName());
			}
		}
	}
MenuRepository.removeMenu(string);方法源码存在BUG,如下:

> Moved from SourceForge 
> http://sourceforge.net/tracker/index.php?func=detail&aid=1121232&group_id=48726&atid=453974:
> Currently, removeMenu in the class MenuRepository does
> not remove the MenuComponent because it is making a
> call to Map.remove(MenuComponent) instead of
> Map.remove(String) where String is a key in the Map.
> Current code:
> /**
> * Allows easy removal of a menu by its name.
> * @param name
> */
> public void removeMenu(String name) {
> if (menus.containsKey(name)) {
> menus.remove(getMenu
> (name));
> }
> }
> Fixed code:
> /**
> * Allows easy removal of a menu by its name.
> * @param name
> */
> public void removeMenu(String name) {
> menus.remove(name);
> }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值