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>
/>
分享到:
相关推荐
在Struts2中,处理用户输入是常见的任务,而`checkboxlist`是用于展示一组可选复选框的组件。这篇博客讨论的是如何在Struts2中处理`checkboxlist`的换行问题,这在创建多列或美观的表单布局时非常有用。 `checkbox...
4. `s:checkbox`和`s:checkboxlist`: 处理复选框,用于多选数据。 5. `s:radio`和`s:radiobuttonlist`: 处理单选按钮,用于单选数据。 6. `s:select`和`s:option`: 用于创建下拉列表,可以从Action或静态资源中获取...
3. `s:checkbox`和`s:radio`: 分别用于创建复选框和单选按钮,可以与Action的List属性进行绑定,实现多选或单选。 4. `s:submit`: 创建提交按钮,触发Action的执行。 5. `s:form`: 定义一个表单,可以指定Action和...
Struts2是一个非常流行的Java Web框架,用于构建和维护可扩展、模块化和高度结构化的Web应用程序。...通过深入学习Struts2标签库,开发者能够更好地理解和利用Struts2框架,创建出高效、易维护的Web应用。
- `s:checkbox`,`s:checkboxlist`:处理单选或多选框,与Action中的布尔值或列表属性关联。 - `s:radio`,`s:radiolist`:创建单选按钮,可以与Action中的枚举或列表属性绑定。 3. **表单标签**: - `s:form`:...
<s:checkboxlist name="interests" list="{'Java', 'Python', 'JavaScript'}" /> ``` 这会根据列表中的元素自动生成复选框,用户选中的值也会自动存入`interests`字段。 在描述中提到的博客链接(由于实际无法访问...
3. **表单标签**:Struts2提供了一整套表单相关的标签,如`<s:form>`定义表单,`<s:submit>`提交表单,`<s:checkboxlist>`和`s:select`用于创建多选和下拉菜单,以及`<s:iterator>`遍历集合数据。 4. **验证标签**...
- `s:checkboxlist` 和 `s:radiolist`:用于生成多选或单选的列表。 3. **Struts2迭代标签库**: - `s:iterator`:遍历集合数据,如List、Map等,用于循环渲染数据。 - `s:if` 和 `s:else`:条件判断标签,类似...
对于那些已经熟悉Struts1的人来说,学习Struts2将是一个相对平滑的过程。Struts2标签库是其核心组件之一,它提供了丰富的前端界面构建工具,能够帮助开发者快速构建动态网页。下面将详细介绍Struts2标签库中的部分...
- **Checkboxlist**:创建复选框列表。 - **Radio**:创建单选按钮组。 - **Select**:创建下拉列表。 #### 十、表单防重复提交 - **防止重复提交**:通过在表单中加入隐藏字段、使用令牌等机制避免重复提交...
- **checkboxlist复选框**:用于生成一组复选框。 - **radio单选框**:用于生成一组单选按钮。 - **select下拉选择框**:用于生成下拉列表。 - **token防止表单重复提交**:使用`<s:token>`标签可以生成一个隐藏字段...
3. `s:checkbox` 和 `s:checkboxlist`:用于创建单选和复选框,可以绑定到Action类的集合属性,方便处理多选值。 4. `s:radio` 和 `s:radiolist`:与`checkbox`类似,但用于单选按钮。 5. `s:submit`:创建提交...
- `s:checkboxlist`、`s:radiolist`:多选框和单选框列表,用于多值选择。 - `s:submit`和`s:reset`:在表单中创建提交和重置按钮。 - `s:head`:插入JavaScript和CSS资源,支持CDN加速。 案例分析(以`struts...
3. **选择标签(Selection Tags)**:这些标签主要用于下拉列表、复选框组和单选按钮组的选择,如`<s:select>`创建下拉列表,`<s:checkboxlist>`和`s:radiolist`分别用于生成多个复选框和单选按钮。 4. **数据标签...
- `s:checkbox`和`s:checkboxlist`: 处理复选框,可以单个使用或以列表形式显示。 - `s:radio`: 用于创建单选按钮,同样支持列表展示。 - `s:select`和`s:option`: 创建下拉选择列表,可以从Action类的集合属性动态...
- `<s:checkbox>`和`<s:checkboxlist>`:创建单选或多选复选框,可以与List或Map类型的数据绑定。 - `<s:radio>`和`<s:radiolist>`:创建单选按钮,同样支持List或Map数据绑定。 - `<s:select>`:创建下拉列表,可以...
Struts2标签是Java开发中基于Struts2框架的一个重要组成部分,它提供了丰富的标签库,使得在JSP页面中处理业务逻辑和展示数据变得更加简洁和高效。与Struts1的标签库相比,Struts2的标签更加灵活且功能更加强大。 ...
<s:checkboxlist name="skills2" label="Skills 2" list="#{ 1:'Java', 2: '.Net', 3: 'RoR', 4: 'PHP' }" listKey="key" listValue="value" value="{ 1, 2, 3 }"/> ``` 在这里,`list`属性是一个Map对象...
Struts2是一个强大的MVC框架,它提供了丰富的标签库,使得开发者可以更加便捷地构建视图层。在本文中,我们将深入探讨Struts2的标签库,并特别关注单选框和多选框的使用。 首先,引入Struts2的标签库至关重要。在...