posts - 2, comments - 18, trackbacks - 0, articles - 0
          剛開始接觸JSF的時候到處找雙聯(lián)菜單,后來自己寫了個,是鏈接數(shù)據(jù)庫的。 不過這里作為一個演示把數(shù)據(jù)庫部分刪除了,可直接運用
          希望可以供初學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)菜單(雙級聯(lián)動菜單)實例,源代碼  回復  更多評論   

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

          # re: JSF: 雙聯(lián)菜單(雙級聯(lián)動菜單)實例,源代碼  回復  更多評論   

          2007-08-15 23:15 by
          看到這個回復功能了么 沒刷新吧

          # re: JSF: 雙聯(lián)菜單(雙級聯(lián)動菜單)實例,源代碼  回復  更多評論   

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

          # re: JSF: 雙聯(lián)菜單(雙級聯(lián)動菜單)實例,源代碼  回復  更多評論   

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

          # re: JSF: 雙聯(lián)菜單(雙級聯(lián)動菜單)實例,源代碼[未登錄]  回復  更多評論   

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

          # re: JSF: 雙聯(lián)菜單(雙級聯(lián)動菜單)實例,源代碼  回復  更多評論   

          2007-08-17 10:13 by Tendy
          @小牧
          有些組件使用 A4J 會出問題,不過是哪些組件我不知道,呵呵
          另外,commandLink 這個組件有一些 bug

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

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

          # re: JSF: 雙聯(lián)菜單(雙級聯(lián)動菜單)實例,源代碼  回復  更多評論   

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

          # re: JSF: 雙聯(lián)菜單(雙級聯(lián)動菜單)實例,源代碼  回復  更多評論   

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

          # re: JSF: 雙聯(lián)菜單(雙級聯(lián)動菜單)實例,源代碼  回復  更多評論   

          2007-12-07 20:42 by petter
          樓主有時間把aj4的實現(xiàn)方式也貼出來吧!免得大家來了白來!

          # re: JSF: 雙聯(lián)菜單(雙級聯(lián)動菜單)實例,源代碼  回復  更多評論   

          2008-05-08 19:18 by vboy14
          看看回復效果

          # re: JSF: 雙聯(lián)菜單(雙級聯(lián)動菜單)實例,源代碼  回復  更多評論   

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

          # re: JSF: 雙聯(lián)菜單(雙級聯(lián)動菜單)實例,源代碼  回復  更多評論   

          2009-03-20 15:57 by jghj
          ghjhjg

          # re: JSF: 雙聯(lián)菜單(雙級聯(lián)動菜單)實例,源代碼[未登錄]  回復  更多評論   

          2009-04-03 13:26 by qq
          qq

          # re: JSF: 雙聯(lián)菜單(雙級聯(lián)動菜單)實例,源代碼[未登錄]  回復  更多評論   

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

          # re: JSF: 雙聯(lián)菜單(雙級聯(lián)動菜單)實例,源代碼  回復  更多評論   

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

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


          網(wǎng)站導航:
           
          主站蜘蛛池模板: 滕州市| 云梦县| 托克逊县| 胶州市| 邯郸市| 扶沟县| 周至县| 科尔| 肃北| 湘西| 泾川县| 石嘴山市| 平湖市| 喀喇沁旗| 天镇县| 天全县| 于都县| 睢宁县| 彝良县| 宜春市| 彩票| 田阳县| 新源县| 依安县| 儋州市| 平邑县| 甘孜县| 大庆市| 进贤县| 博湖县| 定襄县| 普宁市| 常德市| 怀集县| 比如县| 绵竹市| 亚东县| 资中县| 田东县| 淳安县| 茌平县|