`
santino_chen
  • 浏览: 7095 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Richfaces实现动态菜单

    博客分类:
  • Java
阅读更多

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的配置

 

分享到:
评论
1 楼 homelink 2009-03-09  
原来你这鸟人就是好哥!

相关推荐

    RichFaces4.5 JavaApi JSApi

    RichFaces的JS API也包含了一系列组件相关的API,例如`richfaces.selectOneMenu`,它提供了与富选择菜单组件交互的方法。开发者可以利用这些API来扩展或自定义组件的行为,以满足特定的应用场景需求。 在实际应用中...

    richfaces中文开发文档

    4. **rich:popupPanel**:弹出面板组件,可以实现浮窗效果,常用于对话框和下拉菜单。 5. **rich:modalPanel**:模态窗口组件,用于在当前页面上打开一个半透明的覆盖层,突出显示特定内容。 **三、RichFaces与JSF...

    Richfaces标签

    Richfaces提供的组件极大地简化了Web应用开发过程中的UI设计工作,使得开发者能够更专注于业务逻辑的实现。通过对上述标签的学习和理解,我们可以更好地利用Richfaces来提升项目的交互性和用户体验。

    richfaces自动构建树实现.docx

    RichFaces 自动构建树实现 RichFaces 自动构建树实现是基于 Java 语言和 RichFaces 框架的树形结构实现。树形结构在软件系统中非常常见,包括树形菜单的构建、基于二叉树的二分查找法等等。RichFaces 提供了树形...

    richfaces组件说明文档及使用实例

    RichFaces的组件库包括但不限于表格(Table)、面板(Panel)、对话框(Dialog)、菜单(Menu)、表单元素(Form Elements)、数据输入组件(Data Input Components)等。例如,`&lt;rich:calendar&gt;`用于日期选择,`...

    richfacesDemo

    在Java Web开发领域,RichFaces是一个强大的AJAX和UI组件库,它为开发者提供了丰富的用户界面功能,使得构建动态、交互式的Web应用程序变得更为简便。此“richfacesDemo”项目是一个在MyEclipse集成开发环境中实现的...

    JSF Richfaces构建树

    - **value 属性**: 该属性指向一个实现了RichFaces提供的 `TreeNode` 接口的集合对象,即树形结构的数据源。 - **var 属性**: 用于指定循环变量的名字,通常用来访问每个节点的数据。 - **switchType 属性**: 控制树...

    richfaces-ui-3.3.0.GA 最新版

    1. **动态表格**:使用`&lt;rich:datascroller&gt;`和`&lt;rich:datagrid&gt;`可以创建具有分页和排序功能的数据表,同时通过A4J实现无刷新滚动和过滤。 2. **拖放功能**:利用`&lt;rich:dragSupport&gt;`和`&lt;rich:dropSupport&gt;`实现...

    RichFaces-3.2.1-lib

    RichFaces包含了一系列预定义的UI组件,如数据网格、下拉菜单、日期选择器、树形结构等,这些组件可以方便地集成到JSF应用中,减少从零开始编写前端代码的工作量。 **5. 依赖管理:** 开发者需要确保正确管理和...

    richfaces实战(目前市面上最好的richfaces资料)

    1. **强大的Ajax支持**:通过内置的Ajax支持,RichFaces能够使Web页面实现异步数据交换,提高用户体验。 2. **丰富的UI组件库**:提供了大量易于使用的组件,包括数据表格、日历选择器、树形结构等,帮助快速开发...

    richfaces-ui-3.2.1.GA-bin.zip

    1. **核心组件库**:如`richfaces-components-api.jar`和`richfaces-components-ui.jar`,这两个jar包提供了RichFaces框架的基础组件API和实现,包括数据表、下拉菜单、树形结构、日期选择器等富客户端组件。...

    Practical RichFaces, 2nd Edition

    - **第8章:富菜单组件** - 展示了用于创建下拉菜单和导航栏等UI元素的组件。 - **第9章:富树组件** - 解释了如何使用树形结构来组织和展示数据。 - **第10章:富拖放组件** - 描述了如何实现拖放操作以提高用户...

    Websphere 上部署Richfaces 3.10 Demo

    这些库文件提供了RichFaces的功能接口和实现。 4. **配置JSF和RichFaces**: - 需要在web.xml文件中配置JSF和RichFaces的上下文参数。例如,设置com.sun.faces.config.ConfigureListener作为监听器,指定RichFaces...

    EXTJS+RICHFACES

    在实际项目中,开发人员通常会利用EXTJS的布局和组件,通过AJAX调用RichFaces服务,实现数据的动态加载和交互,同时利用RichFaces的组件来增强EXTJS界面的功能性和美观度。 综上所述,EXTJS和RichFaces的结合使用,...

    An introduction to RichFaces

    RichFaces是由JBoss社区开发并维护的一个开源项目,它提供了一系列高级UI组件,这些组件不仅具备丰富的视觉效果,还能轻松实现复杂的客户端操作,如拖放、树形菜单、模态对话框等。RichFaces最大的优势在于其对Ajax...

    richfaces标签例子

    然后,`&lt;a4j:outputPanel&gt;`和`&lt;a4j:support&gt;`标签用于实现AJAX更新,当用户交互时(如点击复选框或选择下拉菜单),`calendar`组件会异步重新渲染,提供实时反馈。 在例子中,还有两个`&lt;h:selectBooleanCheckbox&gt;`...

    ext,richfaces,seam的结合demo

    3. **Ajax增强**:RichFaces通过Ajax技术增强JSF组件,实现局部刷新,提升应用程序的响应速度和用户体验。 4. **集成框架**:Seam作为中间层,可以很好地将前端的Ext JS和后端的业务逻辑进行桥接,实现数据的无缝...

    用richFaces的<rich:treeNode>标签开发tree

    在实际应用中,`&lt;rich:tree&gt;`组件还可以与其他RichFaces组件结合,比如`&lt;rich:contextMenu&gt;`,为树节点提供右键菜单,增强用户体验。同时,通过CSS和JavaScript,可以进一步定制组件的样式和交互行为。 总的来说,`...

Global site tag (gtag.js) - Google Analytics