隨筆 - 12  文章 - 20  trackbacks - 0
          <2008年12月>
          30123456
          78910111213
          14151617181920
          21222324252627
          28293031123
          45678910

          常用鏈接

          留言簿(1)

          隨筆分類

          隨筆檔案

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

            
          s:select
                      標簽輸出一個下拉列表框,相當于HTML代碼中的<select/> 



          list: 
            Cellection Map Enumeration Iterator array .要迭代的集合,使用集合中的元素來設置各個選項,如果list的屬性為Map則Map的key成為選項的value,Map的value會成為選項的內容。

           

           


          eg:

          <%@ taglib prefix="s" uri="/struts-tags" %>

           

          <h3>使用name和list屬性,list屬性的值是一個列表</h3>

          <s:form>

              <s:select label="最高學歷" name="education" list="{'高中','大學','碩士','博士'}"/>

          </s:form>

           

          <h3>使用name和list屬性,list屬性的值是一個Map</h3>

          <s:form>

              <s:select label="最高學歷" name="education" list="#{1:'高中',2:'大學',3:'碩士',4:'博士'}"/>

          </s:form>



           

          listKey
              指定集合對象中的哪個屬性作為選項的value

          listValue
           String
           指定集合對象中的哪個屬性作為選項的內容

          <h3>使用listKey和listValue屬性,利用Action實例的屬性(property)來設置選項的值和選項的內容</h3>

          <s:form>

              <s:select label="最高學歷" name="education" list="educations"

                 listKey="id" listValue="name"/>

          </s:form>



          headerKey
           String
           設置當用戶選擇了header選項時,提交的value,如果使用該屬性,不能為該屬性設置空值
           
          headerValue
           String
           顯示在頁面中header選項內容

          eg:

           

          <h3>使用headerKey和headerValue屬性設置header選項</h3>

          <s:form>

              <s:select label="最高學歷" name="education" list="{'高中','大學','碩士','博士'}"

                 headerKey="-1" headerValue="請選擇您的學歷"/>

          </s:form>



          emptyOption
           Boolean
           是否在header選項后面添加一個空選項

           

          <h3>使用emptyOption屬性在header選項后添加一個空的選項</h3>

          <s:form>

              <s:select label="最高學歷" name="education" list="{'高中','大學','碩士','博士'}"

                 headerKey="-1" headerValue="請選擇您的學歷"

                 emptyOption="true"/>

          </s:form>



          multiple
           Boolean
           是否多選

           

          <h3>使用multiple屬性設置多選</h3>

          <s:form>

              <s:select label="最高學歷" name="education" list="{'高中','大學','碩士','博士'}"

                 headerKey="-1" headerValue="請選擇您的學歷"

                 emptyOption="true"

                 multiple="true"/>

          </s:form>


           

           size
           Integer
           顯示的選項個數

          <h3>使用size屬性設置下拉框可顯示的選項個數</h3>

          <s:form>

              <s:select label="最高學歷" name="education" list="{'高中','大學','碩士','博士'}"

                 headerKey="-1" headerValue="請選擇您的學歷"

                 emptyOption="true"

                 multiple="true" size="8"/>

          </s:form>


           

           S:param

          為其他標簽提供參數,比如include標簽和bean標簽. 參數的name屬性是可選的,如果提供,會調用Component的方法addParameter(String, Object), 如果不提供,則外層嵌套標簽必須實現UnnamedParametric接口(如TextTag)。

          參數:

          名稱 必需 默認 類型 描述
          name   String 參數名
          value   String value表達式
          id   Object/String 用來標識元素的id。在UI和表單中為HTML的id屬性

          value的提供有兩種方式,通過value屬性或者標簽中間的text

          <param name="color">blue</param><!-- (A) -->

          <param name="color" value="blue"/><!-- (B) -->
          (A)參數值會以String的格式放入statck.
          (B)該值會以java.lang.Object的格式放入statck.


          s:set

          set標簽賦予變量一個特定范圍內的值。當希望給一個變量賦一個復雜的表達式,每次訪問該變量而不是復雜的表達式時用到。其在兩種情況下非常有用: 復雜的表達式很耗時 (性能提升) 或者很難理解 (代碼可讀性提高)。

          參數:

          名稱 必需 默認 類型 描述
          name   String 變量名字
          scope   String 變量作用域,可以為application, session, request, page, 或action.
          value   Object/String 將會賦給變量的值
          id   Object/String 用來標識元素的id。在UI和表單中為HTML的id屬性


          s:text

          支持國際化信息的標簽。國際化信息必須放在一個和當前action同名的resource bundle中,如果沒有找到相應message,tag body將被當作默認message,如果沒有tag body,message的name會被作為默認message。

          參數:

          名稱 必需 默認 類型 描述
          name   String 資源屬性的名字
          id   Object/String 用來標識元素的id。在UI和表單中為HTML的id屬性


          s:url

          該標簽用于創建url,可以通過"param"標簽提供request參數。


          s:property 
          得到'value'的屬性,如果value沒提供,默認為堆棧頂端的元素。

          參數:

          名稱 必需 默認 類型 描述
          default   String 如果屬性是null則顯示的default值
          escape true Booelean 是否escape HTML
          value 棧頂 Object 要顯示的值
          id   Object/String 用來標識元素的id。在UI和表單中為HTML的id屬性


          s:iterator

          這個標簽主要的的作用就是迭代出集合。。

          value屬性表示需要跌代顯示出來的值。

          status屬性,又來保存迭代時的一些狀態值。

          注:1.如果需要引用valueStack中的值,需要使用這樣的形式。

          <s:iterator value="#userList" /> //userList在action部分被保存在Request中,所以使用#加屬性名來引用值。

          2.如果集合的值是通過action的方法,假設我們的action中有一個getListMenu方法,返回一個List集合。

          我們可以使用如下的形式來引用這個集合,并用s:iterator來輸出。

          <s:iterator value="listMenu" />

          3.iterator的value使用定義好的方式,如:

          <s:iterator value="{1,2,3,4}" />         //這樣跌代輸出的值就是1.2.3.4這四個值。

          二、iterator中輸出具體值,如果,在上面我們的list中的對象,有兩個屬性,都是String類型,一個是name,一個是url。

          我們可以這樣來引用。

          1.      <s:property value="name" />       //這樣我們將可以輸出跌代對象的name屬性值。

          2.      如果我們希望使用<s:url />來將跳轉過后的url進行處理,該如何來做?

                    <s:url value="%{url}"/>            //%{}ognl的表達式,這樣的值能夠將url的值進行<s:url/>的處理

                   實際上就是轉為絕對路徑。這樣,我們就可以對付一些因跳轉換產生的路徑問題。

              原因:因為<s:iteratotr />以后,當前的對象應該就在ValueStack頂部了,這樣當然的url實際上就是對象的url          屬性了

          三、使用ognl輸出對應的值。

          <s:textfield name="loginName" value="%{#request.loginNames}"/>

          使用此表達式,會生成一個文本框,并且,如果request.attribute中有loginNames屬性,將會做為些文本框的默認值。

          如果只使用#request.loginNames在struts2的標簽內部,是不會顯示任何值的,注意外面加上的%{}附號,才會被正常的使用。

          如果希望如EL語言一樣直接輸出文件,如在一個<a></a>之間的innerHTML文本為#request.loginNames的值,我們只要使用:<s:property value="#request.loginNames" />使可以正常使用!

          注:

          1.${}是EL語言的 %{}這樣的形式是ognl表過式語言的,在struts2的標簽內部,使用%{}這樣的形式,在標簽外部可以使用${}EL語言的方式。如果在struts2的標簽內部使用${}這樣的方式,會出現以下的錯誤提示:

          According to TLD or attribute directive in tag file, attribute value does not accept any expressions

          2.很多時候,我們使用struts2的一些標簽,屬性是需要接受集合的,如果集合是保存在request,session,或者是值棧(非根對象的棧頂),可以使用#變量名的方式,如果獲取的值是在Action中通過特定的方法來獲取,就需要使用如 value="userList"這樣的方式,只是去掉了前面的#。


           


             

          posted on 2008-12-23 14:57 沖出銀河系 閱讀(863) 評論(0)  編輯  收藏 所屬分類: struts2
          主站蜘蛛池模板: 渝中区| 大化| 清水河县| 通河县| 庆安县| 瑞安市| 门源| 玉环县| 那坡县| 微博| 穆棱市| 湘潭市| 江安县| 隆昌县| 离岛区| 鹤岗市| 昔阳县| 朝阳区| 塘沽区| 咸阳市| 泸溪县| 永修县| 陈巴尔虎旗| 新干县| 中宁县| 巩义市| 扶风县| 安溪县| 长顺县| 抚顺市| 江永县| 沿河| 泌阳县| 麻江县| 安泽县| 新绛县| 绥芬河市| 汶上县| 宁远县| 津市市| 全州县|