struts2的s:checkboxlist標簽學習

          struts2里增加了一個新的UT標簽s:checkboxlist,下面介紹下使用方法。
          s:checkboxlist用于畫面上顯示一組復選框,缺省是橫排輸出,后面將介紹如何修改ftl文件使得它能按任意方式輸出。
          標簽格式:
              <s:checkboxlist name="" list="" listKey="" listValue="" value="" />
              name-定義標簽名,用于接收畫面上選中的復選框,故應與Action里定義的屬性一致,且多為數組;
              list-定義集合變量,用于輸出復選框到畫面上,一般在Action里定義一個List或Map屬性;
              listKey-如果在Action里定義的是一個List,則往往會在List里定義一個Bean,它只有兩個屬性,其中一個(比如id)就在這里設置;
                          如果在Action里定義的是一個Map,則Map的key就在這里設置;
              listValue-如果在Action里定義的是一個List,則往往會在List里定義一個Bean,它只有兩個屬性,另外一個(比如name)就在這里設置;
                            如果在Action里定義的是一個Map,則Map的value就在這里設置;
              value-用于回顯畫面上被選中的復選框,假如畫面有輸入檢查,如果有錯則返回原畫面并顯示出錯信息,這時候就需要使用它。
                       一般把它設成和name一致就可以了。
          注意點:
              為了能正確顯示已被選中的復選框,一定要使得name的數組類型與listKey的類型一致。
              比如,name設成String[] users,則listKey就要設成String id;如果name設成Integer[] users,則listKey就要設成Integer id;
          修改ftl文件改變輸出方式:
              1.搜索struts2-core-xxx.jar,找到checkboxlist.ftl文件,拷貝出來;
              2.在自己的工程的src下新建template.simple包,放置上述文件;
              3.用文本編輯器打開該文件,修改成自己希望輸出的格式,保存,OK;
          例子:
              希望畫面上每3個復選框輸出為一行。
          <#--
          /*
           * $Id: checkboxlist.ftl 804072 2009-08-14 03:16:35Z musachy $
           *
           * Licensed to the Apache Software Foundation (ASF) under one
           * or more contributor license agreements.  See the NOTICE file
           * distributed with this work for additional information
           * regarding copyright ownership.  The ASF licenses this file
           * to you under the Apache License, Version 2.0 (the
           * "License"); you may not use this file except in compliance
           * with the License.  You may obtain a copy of the License at
           *
           *  http://www.apache.org/licenses/LICENSE-2.0
           *
           * Unless required by applicable law or agreed to in writing,
           * software distributed under the License is distributed on an
           * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
           * KIND, either express or implied.  See the License for the
           * specific language governing permissions and limitations
           * under the License.
           */
          -->
          <#assign itemCount = 0/>
          <#if parameters.list?exists>
               <@s.iterator value="parameters.list">
                   <#assign itemCount = itemCount + 1/>
                   <#if parameters.listKey?exists>
                       <#assign itemKey = stack.findValue(parameters.listKey)/>
                   <#else>
                       <#assign itemKey = stack.findValue('top')/>
                   </#if>
                   <#if parameters.listValue?exists>
                       <#assign itemValue = stack.findString(parameters.listValue)/>
                   <#else>
                       <#assign itemValue = stack.findString('top')/>
                   </#if>
           <#assign itemKeyStr=itemKey.toString() />
           <#if (itemCount-1)%3 == 0>
           <tr>
           </#if>
           <td>

           <input type="checkbox" name="${parameters.name?html}" value="${itemKeyStr?html}" id="${parameters.name?html}-${itemCount}"<#rt/>
                   <#if tag.contains(parameters.nameValue, itemKey)>
            checked="checked"<#rt/>
                   </#if>
                   <#if parameters.disabled?default(false)>
            disabled="disabled"<#rt/>
                   </#if>
                   <#if parameters.title?exists>
            title="${parameters.title?html}"<#rt/>
                   </#if>
                   <#include "/${parameters.templateDir}/simple/scripting-events.ftl" />
                   <#include "/${parameters.templateDir}/simple/common-attributes.ftl" />
           />
           <label for="${parameters.name?html}-${itemCount}" class="checkboxLabel">${itemValue?html}</label>
           </td>
           <#if itemCount%3 == 0>
           </tr>

           </#if>
               </@s.iterator>
          </#if>
          <input type="hidden" id="__multiselect_${parameters.id?html}" name="__multiselect_${parameters.name?html}" value=""<#rt/>
          <#if parameters.disabled?default(false)>
           disabled="disabled"<#rt/>
          </#if>
           />



          posted on 2009-12-27 00:16 koradji 閱讀(12042) 評論(0)  編輯  收藏 所屬分類: java

          <2025年5月>
          27282930123
          45678910
          11121314151617
          18192021222324
          25262728293031
          1234567

          導航

          統計

          常用鏈接

          留言簿(2)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          收藏夾

          db2

          dos

          Groovy

          Hibernate

          java

          WAS

          web application

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 新源县| 子洲县| 浮梁县| 温宿县| 商洛市| 札达县| 会昌县| 彩票| 大城县| 二连浩特市| 五常市| 安丘市| 万安县| 舒城县| 黔东| 镇安县| 文昌市| 昆山市| 昌江| 新邵县| 溧水县| 门头沟区| 克拉玛依市| 彭阳县| 威海市| 论坛| 闽侯县| 西乡县| 花莲市| 太湖县| 浠水县| 北碚区| 长顺县| 定边县| 特克斯县| 交城县| SHOW| 绥江县| 武穴市| 洪泽县| 辛集市|