`
孟雪雪
  • 浏览: 53040 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

JSF: 双联菜单(双级联动菜单)实例,源代码

    博客分类:
  • jsf
jsf 
阅读更多
刚开始接触JSF的时候到处找双联菜单,后来自己写了个,是链接数据库的。 不过这里作为一个演示把数据库部分删除了,可直接运用
希望可以供初学JSF的朋友使用。

select.jsp
<%@page contentType="text/html;charset=UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
<%@ page language="java"%>
<html>
    <f:view>
        <head>
            <title>Search_Advance</title>
        </head>
        <body>
            <h:form>
                <h:selectOneMenu value="#{selectItem.selectedOne}"
                    onchange="this.form.submit();"
                    style="position:absolute; left:95; top: 90; width:100; height:35"
                    valueChangeListener="#{selectItem.selectedOneChange}">
                    <f:selectItems value="#{selectItem.LMList}" />
                </h:selectOneMenu>

                <h:selectOneMenu value="#{selectItem.selectedTwo}"
                    style="position:absolute; left:95; top: 135; width:100; height:35"
                    onchange="this.form.submit();"
                    valueChangeListener="#{selectItem.selectedTwoChange}"
                    immediate="true">
                    <f:selectItems value="#{selectItem.currentMCList}" />
                </h:selectOneMenu>

                <h:commandButton type="submit" value="OK"
                    style="position:absolute; left: 140; top: 220;"
                    action="#{selectItem.saveCondition}"/>
            </h:form>
        </body>
    </f:view>
</html>
MySelect.java
package mypackage;

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();

    //INI----------------------------------------------------------------------
    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);

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

faces-config.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE faces-config PUBLIC "-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.1//EN" "http://java.sun.com/dtd/web-facesconfig_1_1.dtd">

<faces-config>
    <managed-bean>
        <managed-bean-name>selectItem</managed-bean-name>
        <managed-bean-class>
            mypackage.MySelect
        </managed-bean-class>
        <managed-bean-scope>session</managed-bean-scope>
    </managed-bean>
</faces-config>



分享到:
评论

相关推荐

    JSF实例源代码下载

    在这个"JSF实例源代码下载"中,我们有机会深入学习和理解JSF的工作原理及其应用。 1. **JSF框架概述**:JSF设计的主要目标是简化服务器端的Web开发,通过提供可重用的UI组件和事件处理机制。JSF生命周期包括六步:...

    JSF入门实例 源代码

    这个"JSF入门实例 源代码"是专门为初学者设计的,帮助他们快速理解并掌握JSF的基本概念和用法。下面我们将深入探讨JSF的核心特性、工作原理以及如何通过给定的实例进行学习。 1. JSF概述: JSF是一种官方支持的...

    JavaEE源代码 jsf-api

    JavaEE源代码 jsf-apiJavaEE源代码 jsf-apiJavaEE源代码 jsf-apiJavaEE源代码 jsf-apiJavaEE源代码 jsf-apiJavaEE源代码 jsf-apiJavaEE源代码 jsf-apiJavaEE源代码 jsf-apiJavaEE源代码 jsf-apiJavaEE源代码 jsf-...

    JavaEE源代码 jsf-impl

    JavaEE源代码 jsf-implJavaEE源代码 jsf-implJavaEE源代码 jsf-implJavaEE源代码 jsf-implJavaEE源代码 jsf-implJavaEE源代码 jsf-implJavaEE源代码 jsf-implJavaEE源代码 jsf-implJavaEE源代码 jsf-implJavaEE源...

    JSF工程实例源代码

    **JSF(JavaServer Faces)** 是Java平台上的一种用于...通过研究源代码,你可以了解如何将用户界面与后端服务集成,以及如何处理复杂的文件I/O和数据库操作。此外,这个实例也可以作为你自定义文件管理系统的起点。

    JSF学习,JSF标签使用

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

    Jsf 项目源代码

    在"Jsf 项目源代码"这个压缩包中,我们可以推测这包含了一个基于JSF 2.0版本的项目。JSF 2.0是该框架的一个重要版本,引入了许多增强功能,例如面部刷新(Facelet)、视图状态管理、自定义标签改进以及请求处理的...

    JSF上传 JSF大文件上传 JSF上传代码 JSF上传源代码

    项目的源代码中应该包含了上述所有部分,提供了一个完整的JSF大文件上传解决方案。对于希望学习或改进自己JSF文件上传功能的开发者来说,这是一个宝贵的资源。通过深入研究源代码,可以了解到如何处理大文件、如何...

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

    - **编译、打包和运行应用程序**:解释了如何将源代码编译成类文件,如何将其打包成WAR文件,并部署到服务器上运行。 - **应用程序关键部分回顾**:总结了应用程序的关键组成部分及其作用。 #### 3. JavaServer ...

    JSF1.2.07版源代码

    **JSF 1.2.07 源代码详解** JavaServer Faces (JSF) 是Java平台上用于构建用户界面的官方标准框架,它提供了一种声明式的方式来创建Web应用程序。JSF 1.2是该框架的一个重要版本,引入了许多增强功能和改进,为...

    JSF2.0源代码

    **JSF 2.0 源代码详解** JavaServer Faces (JSF) 是一个用于构建Web用户界面的Java框架,由Sun Microsystems(现已被Oracle收购)开发并维护。JSF 2.0是该框架的一个重要版本,它带来了许多改进和新特性,提升了...

    jsf1.2源代码下载

    **JSF 1.2 源代码详解** JavaServer Faces (JSF) 是一个用于构建用户界面的Java EE框架,它提供了一种组件化的方式来创建Web应用程序。JSF 1.2是该框架的一个重要版本,发布于2007年,带来了许多增强功能和改进,...

    jsf实例jsf实例 JSF学习 JSF jar包 JSF

    jsf实例 JSF学习 JSF jar包 JSF jsf实例 JSF学习 JSF jar包 JSFjsf实例 JSF学习 JSF jar包 JSF jsf实例 JSF学习 JSF jar包 JSF

    JSF-UIREPEAT

    **源代码** 可能包括一个或多个Java类、JSF视图(`.xhtml`文件)和可能的配置文件,展示了如何使用UIRepeat组件。通过查看和分析这些源代码,你可以学习到如何设置数据源、如何绑定属性以及如何处理事件等。 在...

    完整的jsf博客源代码

    总的来说,这个"完整的jsf博客源代码"实例不仅涵盖了JSF的基础知识,也包含了数据库集成和项目构建的实际经验,是提升Java Web开发技能的理想资源。通过实践,你可以深入理解JSF框架的工作原理,同时掌握数据库应用...

    jsf+spring 实例

    - 配置JSF:在JSF的配置文件中(如`faces-config.xml`)声明Spring的EL解析器,使得JSF能够识别和使用Spring Bean。 - 使用JSF页面调用Spring服务:在JSF的XHTML页面中,通过EL表达式直接引用Spring Bean的方法。 *...

    jsf第一个例子 jsf架包 jsf实例

    7. **jsf实例**:在实际应用中,JSF实例通常指的是一个运行时的JSF应用程序,它包含了配置、组件、Managed Beans以及它们之间的交互。 在“Login”示例中,我们可能看到以下代码片段: ```xml &lt;!-- login.xhtml --...

    JSF国际化范例 源代码

    在这个JSF国际化范例中,源代码很可能会包括以下部分: - 不同语言版本的资源文件(如`messages_en.properties`,`messages_zh_CN.properties`) - XHTML视图文件,展示如何引用资源文件中的消息 - Managed Bean,...

    JSF IN ACTION 源代码

    **JSF IN ACTION 源代码详解** "JSF IN ACTION 源代码" 是一本深入探讨JavaServer Faces(JSF)技术的书籍的配套源码。这本书籍旨在帮助开发者全面理解JSF框架,通过实践代码来提升技能。源代码的提供意味着读者...

    JSF实例

    **JSF(JavaServer Faces)** 是一个Java平台上的企业级Web应用程序开发框架,由Sun Microsystems(现已被Oracle收购)开发。它为构建用户界面提供了一种组件化、事件驱动的方法,极大地简化了Web应用的开发流程。...

Global site tag (gtag.js) - Google Analytics