posts - 2, comments - 18, trackbacks - 0, articles - 0

          2007年8月15日

          剛開(kāi)始接觸JSF的時(shí)候到處找雙聯(lián)菜單,后來(lái)自己寫(xiě)了個(gè),是鏈接數(shù)據(jù)庫(kù)的。 不過(guò)這里作為一個(gè)演示把數(shù)據(jù)庫(kù)部分刪除了,可直接運(yùn)用
          希望可以供初學(xué)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>


          posted @ 2007-08-15 21:48 一只小蘋(píng)果 閱讀(3724) | 評(píng)論 (15)編輯 收藏

          主站蜘蛛池模板: 吉木乃县| 江西省| 迁西县| 论坛| 南丹县| 尼勒克县| 伊宁市| 保定市| 留坝县| 凤山市| 五华县| 昌乐县| 沙湾县| 汉源县| 博客| 大渡口区| 扎鲁特旗| 天气| 太康县| 天祝| 朝阳县| 从江县| 读书| 江永县| 边坝县| 尤溪县| 辰溪县| 平远县| 施秉县| 甘泉县| 高雄市| 前郭尔| 历史| 沙雅县| 循化| 收藏| 呼图壁县| 临洮县| 常宁市| 正镶白旗| 抚顺县|