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

JSF: 联动菜单局部刷新

阅读更多

select.jsp

 

<%@ page language="java" pageEncoding="utf-8"%>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
<%@ taglib uri="http://richfaces.org/a4j" prefix="a4j"%>
<%@ taglib uri="http://richfaces.org/rich" prefix="rich"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<f:view>
<html>
<body>
			<br>
			<br>
			<br>
			<br>
			<br>
<a4j:form>
      <h:selectOneMenu value="#{testBean.selectedOne}"
                               valueChangeListener="#{testBean.selectedOneChange}">
	<f:selectItems value="#{testBean.LMList}" />
	<a4j:support event="onchange" limitToList="true"
	action="#{testBean.change}"  reRender="two"  ajaxSingle="true">
                </a4j:support>
      </h:selectOneMenu>

      <h:selectOneMenu value="#{testBean.selectedTwo}" id="two"
                valueChangeListener="#{testBean.selectedTwoChange}"
	immediate="true">
         <f:selectItems value="#{testBean.currentMCList}" />
    </h:selectOneMenu>
     <a4j:commandButton type="submit" value="OK"
                             action="#{testBean.saveCondition}" />
</a4j:form>

</body>
</html>
</f:view>

  

 

 MySelect.java

import java.util.LinkedList;
import java.util.List;
import java.util.Vector;
import javax.faces.event.ValueChangeEvent;
import javax.faces.model.SelectItem;

public class MySelect {

	public List<SelectItem> LMList = new LinkedList<SelectItem>();;

	public Vector<List<SelectItem>> MCList = new Vector<List<SelectItem>>();

	public List<SelectItem> currentMCList = new LinkedList<SelectItem>();

	public String selectedOne = new String();

	public String selectedTwo = new String();

	public MySelect () throws Exception {

		// This is just a sample.
		// You colud add your DB connection here and INI you List from DataBase.
		LMList.add(new SelectItem("0_0", ""));
		LMList.add(new SelectItem("A_1", "A"));
		LMList.add(new SelectItem("B_2", "B"));
		LMList.add(new SelectItem("C_3", "C"));

		List<SelectItem> list0 = new LinkedList<SelectItem>();
		List<SelectItem> list1 = new LinkedList<SelectItem>();
		List<SelectItem> list2 = new LinkedList<SelectItem>();
		List<SelectItem> list3 = new LinkedList<SelectItem>();

		list0.add(new SelectItem("", ""));

		list1.add(new SelectItem("", ""));
		list1.add(new SelectItem("a1", "a1"));
		list1.add(new SelectItem("a2", "a2"));

		list2.add(new SelectItem("", ""));
		list2.add(new SelectItem("b1", "b1"));
		list2.add(new SelectItem("b2", "b2"));

		list3.add(new SelectItem("", ""));
		list3.add(new SelectItem("c1", "c1"));
		list3.add(new SelectItem("c2", "c2"));

		MCList.add(list0);
		MCList.add(list1);
		MCList.add(list2);
		MCList.add(list3);
	}

	public void selectedOneChange(ValueChangeEvent event) {

		// valueChangeEvent of the first SelectOneMeun
		// The action is about INI the list for the second SelectOneMeun
		String str = (String) event.getNewValue();
		// Like you see, in the first SelectItems we hava "A_1"
		String[] ss = str.split("_");
		// After this we got the index of the "A_1" and the index is "1"
		str = ss[1];

		int index = Integer.parseInt(str);
		System.out.println(index);
		currentMCList = MCList.get(index);
	}

	public void selectedTwoChange(ValueChangeEvent event) {
		// valueChangeEvent of the second SelectOneMeun
		// add action if you have
		System.out.println("selectedTwoChange");
	}

	public void saveCondition() {
		// add action if you have
		System.out.println("saveCondition");
	}

	public void change() {
		System.out.println(selectedOne+"---------");		
		System.out.println("I  was  changed! 哈哈");
	}
	public List<SelectItem> getLMList() {
		return LMList;
	}

	public void setLMList(List<SelectItem> list) {
		LMList = list;
	}

	public String getSelectedOne() {
		return selectedOne;
	}

	public void setSelectedOne(String selectedOne) {
		this.selectedOne = selectedOne;
	}

	public String getSelectedTwo() {
		return selectedTwo;
	}

	public void setSelectedTwo(String selectedTwo) {
		this.selectedTwo = selectedTwo;
	}

	public List<SelectItem> getCurrentMCList() {
		return currentMCList;
	}

	public void setCurrentMCList(List<SelectItem> currentMCList) {
		this.currentMCList = currentMCList;
	}

}

 

 

分享到:
评论

相关推荐

    JSF学习,JSF标签使用

    JSF的学习入门知识教程,里面有例子还有各个标签的使用及属性介绍

    jsf2.0 局部刷新

    **JSF 2.0 局部刷新技术详解** JSF (JavaServer Faces) 是一个用于构建用户界面的 Java 框架,特别是在 Web 应用程序中。JSF 2.0 版本引入了许多改进,其中一项重要的功能就是局部刷新(Partial Page Rendering),...

    ajax4jsf 刷新datatable 例子

    在这个“ajax4jsf 刷新datatable 例子”中,我们将探讨如何利用Ajax4jsf实现数据表格(datatable)的局部刷新功能,从而提高用户体验。 首先,让我们了解什么是Datatable。在JSF中,`&lt;h:dataTable&gt;` 是一个组件,...

    JavaServer Faces完全参考手册(JSF:Complete Reference)

    ### JavaServer Faces (JSF) 完全参考手册知识点概览 #### 1. JavaServer Faces (JSF) 框架简介 - **JSF 定义**:JavaServer Faces(JSF)是一种用于构建基于Java的企业级Web应用程序的标准框架。它提供了组件驱动...

    Richfaces/facelets 页面局部刷新

    自己利用jsf richfaces facelets实现的页面局部刷新的示例,有兴趣的朋友可以下载看看。

    JSF参数传递doc

    在JavaServer Faces (JSF)框架中,参数传递是一个关键的操作,它允许数据在不同页面之间或者组件之间流动。JSF 提供了多种方法来处理参数传递,包括使用`&lt;f:param&gt;`标签、Managed Bean的属性绑定以及共享Request ...

    精通JSF—基于EJBHibernateSpring开发实践视频教程

    资源名称:精通JSF—基于EJBHibernateSpring开发实践视频教程资源目录:【】chapter13_code【】Jsf第七章【】JSF第二章【】Jsf第五章【】Jsf第八章【】Jsf第六章【】Jsf第十三章【】Jsf第十五章【】Jsf第十六章【】...

    JSF-UIREPEAT

    **JSF(JavaServer Faces)** 是一个Java平台上的Web应用程序框架,用于构建用户界面。它简化了开发人员创建交互式、数据驱动的Web应用程序的过程。JSF提供了一种组件模型,允许开发者通过声明性方式来构建用户界面...

    JSF基于EJB Hibernate Spring整合开发与项目

    ### JSF基于EJB Hibernate Spring整合开发与项目 #### 一、JSF基础知识 ##### 1.1 了解JSF JavaServer Faces (JSF) 是一个用于构建基于Web的应用程序的标准Java EE技术。它提供了丰富的组件库以及一套声明式的...

    JSF:掌握 JSF 任务

    **JSF:Java Server Faces详解** Java Server Faces (JSF) 是Java平台上的一个用于构建Web应用程序的MVC(Model-View-Controller)框架。它为开发者提供了丰富的组件库、事件处理机制以及生命周期管理,使得开发...

    notes_JPA_JSF:使用JSF和JPA实施来重建Notes项目

    【标题】"notes_JPA_JSF:使用JSF和JPA实施来重建Notes项目"涉及的是在Java开发环境中,利用JavaServer Faces (JSF) 和 Java Persistence API (JPA) 技术重构建一个名为Notes的项目。JSF是Java EE平台上的一个用户...

    SCR-JSF:JSF + Web 教学

    总的来说,"SCR-JSF:JSF + Web 教学"是一个关于使用JavaServer Faces开发Web应用的教程,涵盖了从基础概念到实际开发的方方面面,旨在帮助学习者掌握JSF框架并运用到实际项目中。通过深入学习和实践,你可以提升自己...

    jsf:为研究 jsf 技术而创建的存储库

    这个名为"jsf:为研究 jsf 技术而创建的存储库"的项目,显然是为了深入理解和学习JSF技术而设立的资源库,包含的`jsf-master`目录可能包含了各种示例代码、文档和教程。 **JSF的核心组件** 1. **模型(Model)**:...

    精通JSF基于EJB HibernateSpring整合天发与项目实践 书本源码

    《精通JSF基于EJB Hibernate Spring整合天发与项目实践》是一本深入讲解Java服务器页面(JavaServer Faces,简称JSF)、企业级JavaBean(Enterprise JavaBeans,简称EJB)、Hibernate对象关系映射(Object-...

    agoncal-sample-jsf:有关JSF的样本

    **JSF(JavaServer Faces)**是Java平台上用于构建用户界面的一种组件模型框架,它主要用于Web应用程序开发。JSF提供了一种声明式的方式来创建和管理Web应用中的用户接口,简化了开发过程。在这个名为"agoncal-...

    crud-jsf:带有 PrimeFaces(插入、更新和删除)的 JSF 应用程序示例

    项目:crud-jsf 作者:阿德里亚诺·桑托斯·拉莫斯技术:CDI、JSF、JPA、EJB、JPA 总结:jsf 中的 crud 示例来源: : 信息 它是一个带有 crud 的 Maven 3 项目,在 JBoss Enterprise Application Platform 6 或 ...

    JSF2.0:Validating User Input

    ### JSF 2.0 用户输入验证详解 #### 概述 JSF(JavaServer Faces)2.0作为Java EE平台的一部分,在Web应用程序开发中扮演着重要的角色。它提供了丰富的功能来简化用户界面的设计和实现过程。其中一项关键功能就是对...

    qt.rar_jsf example_jsf spring hibernate_jsf下拉菜单_spring jsf hiber

    【标题】"qt.rar" 提供的是一个关于 "jsf example" 的实例,结合了 "jsf spring hibernate" 的技术栈,同时包含了 "jsf下拉菜单" 的实现,以及 "spring jsf hibernate" 的整合应用。这个压缩包可能是为了演示如何在...

    精通JSF-基于EJB Hibernage Spring整合开发与项目实践代码.part1

    精通JSF-基于EJB Hibernage Spring整合开发与项目实践代码.part1,第一部分,。将三部分一起下载完后再解压第一部分!

    jsf:根据JSON模式创建伪造的JSON文件

    jsf 它是什么 该存储库是的Python端口,在实现上有一些细微的差异。 结合使用jsf和假生成器,可以为您的系统提供一致且有意义的假数据。 主要特点 提供任何JSON模式的开箱即用数据生成 使用任何lambda函数的可扩展...

Global site tag (gtag.js) - Google Analytics