kalman03

          每天早上看一遍《福布斯》富翁排行榜,如果上面沒有我的名字,我就去學習......
          隨筆 - 22, 文章 - 0, 評論 - 86, 引用 - 0
          數據加載中……

          Struts2系列—Form Tags(combobox/doubleselect)

              網絡上關于Struts2方面資料不少,之所以再重復一些關于Struts2的知識,只是因為本人正在學習Struts2,而且在學習的途中也遇見了不少的問題,由于沒有學過Struts2以前的版本,學習途中也是比較的痛苦,在此僅想記錄下我的學習歷程。
               如果你對這個方面有深入研究,懇請你的指點;如果你也是初學者,希望這系列的文章對你有所幫助。

               Struts2中的combobox類似HTML中的select,一個組合框,用起來很簡單。而doubleselect的功能倒是很強大,就是我們傳說中的級聯菜單,記得用JavaScript寫也要寫一會。
               先看combobox.jsp:
          <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
          <%@ taglib prefix="s" uri="/struts-tags"%>
          <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
          <html>
              
          <head></head>
              
          <body>
                  
          <s:form>
                      
          <!--             直接指定list集合里面的值-->

                      
          <s:combobox label="選擇你喜歡的顏色" name="colorNames"
                          headerValue
          ="------請選擇------" headerKey="1"
                          list
          ="{'紅','橙','黃','綠','青','藍','紫'}" />

                      
          <!--             動態綁定list集合里面的值 -->

                      
          <s:combobox label="選擇你喜歡的顏色" name="colorName"
                          headerValue
          ="------請選擇------" headerKey="1" list="colorname" />
                  
          </s:form>
              
          </body>
          </html>
          因為動態綁定,再增加一個ComboboxAction.java:
          package com.kalman03.action;

          import java.util.ArrayList;
          import java.util.List;

          import com.opensymphony.xwork2.ActionSupport;

          /**
           * @FileName ComboboxAction.java
           * 
           * @Author kalman03
           * 
           
          */
          public class ComboboxAction extends ActionSupport {

              
          private List colorname;

              
          public List getColorname() {
                  
          return colorname;
              }

              
          public void setColorname(List colorname) {
                  
          this.colorname = colorname;
              }

              @Override
              
          public String execute() throws Exception {
                  colorname 
          = new ArrayList();
                  
          //colorname的選項當然是來自數據庫
                  colorname.add("");
                  colorname.add(
          "");
                  colorname.add(
          "");
                  colorname.add(
          "");
                  colorname.add(
          "");
                  colorname.add(
          "");
                  colorname.add(
          "");
                  
          this.setColorname(colorname);
                  
          return SUCCESS;
              }
          }
          配置struts.xml:
          <action name="comboboxtag" class="com.kalman03.action.ComboboxAction">
                      
          <result>/combobox.jsp</result>
          </action>
          看效果:


          我更加喜歡doubleselect的強大,來體驗下:
          doubleselect.jsp:
          <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
          <%@ taglib prefix="s" uri="/struts-tags"%>
          <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
          <html>
              
          <head>
                  
          <title>struts2</title>
              
          </head>

              
          <body>
                  
          <s:form>
          <!--            可以用直接指定,當然也可以跟數據庫綁定的-->
                      
          <s:doubleselect label="Select Item" headerValue="---- 請選擇 ----"
                          headerKey
          ="1" list="{'湖南省','湖北省'}" doubleName="dishes"
                          doubleList
          ="top == '湖南省' ? {'長沙市','岳陽市','懷化市',
                    '株洲市','湘潭市','衡陽市','邵陽市','常德市','婁底市','張家界市','郴州市','永州市'} : { '其他'}"
           />
                  
          </s:form>
              
          </body>
          </html>


          增加下列代碼到struts.xml:
          <action name="doubleselecttag">
                      
          <result>/doubleselect.jsp</result>
          </action>
          瀏覽:http://localhost:8080/test/doubleselecttag.action
          可以看到:

          比起長長的JavaScript代碼要清晰明了多了,但是也使我們程序員變傻瓜了,所以還是要多看看源文件...








          posted on 2008-11-01 11:29 kalman03 閱讀(2534) 評論(1)  編輯  收藏 所屬分類: Struts2

          評論

          # re: Struts2系列—Form Tags(combobox/doubleselect)  回復  更多評論   

          哥們,沒有親自測試過吧,s:doubleselect是必須有id的
          2014-08-26 10:50 | wc0077
          主站蜘蛛池模板: 东源县| 乐昌市| 双辽市| 勐海县| 来凤县| 拉萨市| 淮南市| 百色市| 惠东县| 布尔津县| 昔阳县| 峨山| 微山县| 平泉县| 陇川县| 青岛市| 无极县| 凤台县| 红桥区| 通榆县| 梁河县| 马边| 芦山县| 安新县| 海宁市| 兴文县| 镇远县| 鄯善县| 天峻县| 博湖县| 永宁县| 贡嘎县| 塔城市| 西畴县| 扶绥县| 德州市| 仙居县| 交口县| 敦煌市| 平顶山市| 霍山县|