posts - 2, comments - 18, trackbacks - 0, articles - 0
          剛開始接觸JSF的時(shí)候到處找雙聯(lián)菜單,后來(lái)自己寫了個(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>


          Feedback

          # re: JSF: 雙聯(lián)菜單(雙級(jí)聯(lián)動(dòng)菜單)實(shí)例,源代碼  回復(fù)  更多評(píng)論   

          2007-08-15 23:14 by
          值變事件 提交form 刷新整個(gè)頁(yè)面 會(huì)非常不爽 建議用a4j

          # re: JSF: 雙聯(lián)菜單(雙級(jí)聯(lián)動(dòng)菜單)實(shí)例,源代碼  回復(fù)  更多評(píng)論   

          2007-08-15 23:15 by
          看到這個(gè)回復(fù)功能了么 沒刷新吧

          # re: JSF: 雙聯(lián)菜單(雙級(jí)聯(lián)動(dòng)菜單)實(shí)例,源代碼  回復(fù)  更多評(píng)論   

          2007-08-15 23:54 by 一只小蘋果
          a4j確實(shí)可以, 我也是新手, 見諒見諒。。。

          # re: JSF: 雙聯(lián)菜單(雙級(jí)聯(lián)動(dòng)菜單)實(shí)例,源代碼  回復(fù)  更多評(píng)論   

          2007-08-16 08:46 by 網(wǎng)事隨風(fēng)
          使用a4j不刷新頁(yè)面.這種方式刷新頁(yè)面太歷害了,不推薦使用.

          # re: JSF: 雙聯(lián)菜單(雙級(jí)聯(lián)動(dòng)菜單)實(shí)例,源代碼[未登錄]  回復(fù)  更多評(píng)論   

          2007-08-16 11:38 by 小牧
          我在A4J中使用也遇到了問(wèn)題,不知為什么使得原來(lái)的h:DataTable中所有的h:commandLink都失效了。我的qq:530134120

          # re: JSF: 雙聯(lián)菜單(雙級(jí)聯(lián)動(dòng)菜單)實(shí)例,源代碼  回復(fù)  更多評(píng)論   

          2007-08-17 10:13 by Tendy
          @小牧
          有些組件使用 A4J 會(huì)出問(wèn)題,不過(guò)是哪些組件我不知道,呵呵
          另外,commandLink 這個(gè)組件有一些 bug

          JSF 的調(diào)試很困難
          你可以試試把 commandLink 去掉,
          測(cè)試頁(yè)面其他組件在 A4J 下是不是都正常
          如果不正常,找找其他組件的原因

          如果其他組件正常,再加回 commandLink 組件,
          把 managed-bean 的范圍改為 session 試試

          # re: JSF: 雙聯(lián)菜單(雙級(jí)聯(lián)動(dòng)菜單)實(shí)例,源代碼  回復(fù)  更多評(píng)論   

          2007-11-08 01:18 by luping
          嗯,,刷新太厲害了.

          # re: JSF: 雙聯(lián)菜單(雙級(jí)聯(lián)動(dòng)菜單)實(shí)例,源代碼  回復(fù)  更多評(píng)論   

          2007-11-16 13:11 by xing
          謝謝!

          # re: JSF: 雙聯(lián)菜單(雙級(jí)聯(lián)動(dòng)菜單)實(shí)例,源代碼  回復(fù)  更多評(píng)論   

          2007-12-07 20:42 by petter
          樓主有時(shí)間把a(bǔ)j4的實(shí)現(xiàn)方式也貼出來(lái)吧!免得大家來(lái)了白來(lái)!

          # re: JSF: 雙聯(lián)菜單(雙級(jí)聯(lián)動(dòng)菜單)實(shí)例,源代碼  回復(fù)  更多評(píng)論   

          2008-05-08 19:18 by vboy14
          看看回復(fù)效果

          # re: JSF: 雙聯(lián)菜單(雙級(jí)聯(lián)動(dòng)菜單)實(shí)例,源代碼  回復(fù)  更多評(píng)論   

          2008-08-13 19:40 by ML
          看看

          # re: JSF: 雙聯(lián)菜單(雙級(jí)聯(lián)動(dòng)菜單)實(shí)例,源代碼  回復(fù)  更多評(píng)論   

          2009-03-20 15:57 by jghj
          ghjhjg

          # re: JSF: 雙聯(lián)菜單(雙級(jí)聯(lián)動(dòng)菜單)實(shí)例,源代碼[未登錄]  回復(fù)  更多評(píng)論   

          2009-04-03 13:26 by qq
          qq

          # re: JSF: 雙聯(lián)菜單(雙級(jí)聯(lián)動(dòng)菜單)實(shí)例,源代碼[未登錄]  回復(fù)  更多評(píng)論   

          2010-10-26 16:47 by Michael
          回復(fù)是什么效果?

          # re: JSF: 雙聯(lián)菜單(雙級(jí)聯(lián)動(dòng)菜單)實(shí)例,源代碼  回復(fù)  更多評(píng)論   

          2013-07-28 08:54 by hzjdog
          實(shí)現(xiàn)三級(jí)、四級(jí)聯(lián)動(dòng)又是如何實(shí)現(xiàn)?

          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 盐源县| 滕州市| 特克斯县| 威远县| 宝丰县| 武城县| 青龙| 新宾| 霸州市| 宜城市| 三台县| 五大连池市| 四川省| 三明市| 灌南县| 巍山| 兰考县| 天津市| 枣庄市| 乐都县| 仙居县| 龙门县| 陇西县| 南充市| 金湖县| 江永县| 灵山县| 贵州省| 成武县| 东兰县| 商城县| 香格里拉县| 竹北市| 秦皇岛市| 凤凰县| 霍邱县| 扎鲁特旗| 阜城县| 湛江市| 上杭县| 会宁县|