Richfaces实现动态菜单

1. 环境

JDK 1.6, JSF 1.2, Richfaces 3.2.2 GA, JSTL 1.2, Tomcat 6.0

2. 实现

Backing Bean:

package com.apple.www.beans;

import java.util.ArrayList;
import java.util.List;

public class DynamicMenuBean {

	public class FakeData {
		private String label;

		private String icon;

		private String action;

		public String getLabel() {
			return label;
		}

		public void setLabel(String label) {
			this.label = label;
		}

		public String getIcon() {
			return icon;
		}

		public void setIcon(String icon) {
			this.icon = icon;
		}

		public String getAction() {
			return action;
		}

		public void setAction(String action) {
			this.action = action;
		}

		public FakeData(String label, String icon, String action) {
			this.label = label;
			this.icon = icon;
			this.action = action;
		}
	}

	private String currentAction;

	public void setCurrentAction(String currentAction) {
		this.currentAction = currentAction;
	}

	public String getCurrentAction() {
		return currentAction;
	}

	public List getFakeData() {
		// 从数据库或其他地方获取动态菜单的List
		List<FakeData> fakeData = new ArrayList<FakeData>();
		fakeData.add(new FakeData("menu1", "icon1", "action1"));
		fakeData.add(new FakeData("menu2", "icon2", "action2"));
		fakeData.add(new FakeData("menu3", "icon3", "action3"));
		fakeData.add(new FakeData("menu4", "icon4", "action4"));
		fakeData.add(new FakeData("menu5", "icon5", "action6"));
		return fakeData;
	}

	public String excuteMenuAction() {
		// TODO Something here
		return currentAction;
	}
}

 

JSP Page:

<%@taglib prefix="f" uri="http://java.sun.com/jsf/core"%>
<%@taglib prefix="h" uri="http://java.sun.com/jsf/html"%>
<%@taglib uri="https://ajax4jsf.dev.java.net/ajax" prefix="a4j"%>
<%@taglib uri="http://richfaces.ajax4jsf.org/rich" prefix="rich"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<---------------省略--------------->
<rich:dropDownMenu value="Popup">
    <c:forEach items="#{dynamicMenuBean.fakeData}" var="menu">
        <rich:menuItem icon="#{menu.icon}" value="#{menu.label}" immediate="true"
             action="#{dynamicMenuBean.excuteMenuAction}" submitMode="server">
            <f:setPropertyActionListener target="#{dynamicMenuBean.currentAction}" 
                value="#{menu.action}" />
        </rich:menuItem>
    </c:forEach>
</rich:dropDownMenu>
<---------------省略--------------->

PS: 略去Backing bean和navigation的配置

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值