隨筆-9  評論-2  文章-0  trackbacks-0
          struts2里增加了一個新的UT標(biāo)簽s:checkboxlist,下面介紹下使用方法。
          s:checkboxlist用于畫面上顯示一組復(fù)選框,缺省是橫排輸出,后面將介紹如何修改ftl文件使得它能按任意方式輸出。
          標(biāo)簽格式:
              <s:checkboxlist name="" list="" listKey="" listValue="" value="" />
              name-定義標(biāo)簽名,用于接收畫面上選中的復(fù)選框,故應(yīng)與Action里定義的屬性一致,且多為數(shù)組;
              list-定義集合變量,用于輸出復(fù)選框到畫面上,一般在Action里定義一個List或Map屬性;
              listKey-如果在Action里定義的是一個List,則往往會在List里定義一個Bean,它只有兩個屬性,其中一個(比如id)就在這里設(shè)置;
                          如果在Action里定義的是一個Map,則Map的key就在這里設(shè)置;
              listValue-如果在Action里定義的是一個List,則往往會在List里定義一個Bean,它只有兩個屬性,另外一個(比如name)就在這里設(shè)置;
                            如果在Action里定義的是一個Map,則Map的value就在這里設(shè)置;
              value-用于回顯畫面上被選中的復(fù)選框,假如畫面有輸入檢查,如果有錯則返回原畫面并顯示出錯信息,這時候就需要使用它。
                       一般把它設(shè)成和name一致就可以了。
          注意點:
              為了能正確顯示已被選中的復(fù)選框,一定要使得name的數(shù)組類型與listKey的類型一致。
              比如,name設(shè)成String[] users,則listKey就要設(shè)成String id;如果name設(shè)成Integer[] users,則listKey就要設(shè)成Integer id;
          修改ftl文件改變輸出方式:
              1.搜索struts2-core-xxx.jar,找到checkboxlist.ftl文件,拷貝出來;
              2.在自己的工程的src下新建template.simple包,放置上述文件;
              3.用文本編輯器打開該文件,修改成自己希望輸出的格式,保存,OK;
          例子:
              希望畫面上每3個復(fù)選框輸出為一行。
          <#--
          /*
           * $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 2011-06-14 12:18 secret_x15 閱讀(3156) 評論(0)  編輯  收藏 所屬分類: java
          主站蜘蛛池模板: 长海县| 东台市| 苗栗市| 昌宁县| 肃南| 宝坻区| 尉氏县| 宁津县| 吴川市| 台前县| 老河口市| 罗源县| 阜南县| 水城县| 福清市| 昂仁县| 临猗县| 常宁市| 中超| 宜丰县| 双柏县| 塘沽区| 夏邑县| 陇川县| 军事| 二连浩特市| 福清市| 福建省| 钟山县| 上蔡县| 普定县| 遂宁市| 社旗县| 樟树市| 乌拉特后旗| 府谷县| 修武县| 黔东| 罗江县| 泉州市| 山阴县|