巧用struts标签之checkboxlist选中默认值换行处理
在Struts框架中,`<s:checkboxlist>`是一个非常实用的标签,用于在HTML表单中创建一组复选框,通常用于用户选择多个选项。本文将深入探讨如何巧妙地处理`checkboxlist`的默认选中值以及实现换行显示。 我们需要创建一个数据实体类来封装复选框的选项。例如,`CheckboxBean`类,包含`id`和`name`两个属性,分别代表复选框的唯一标识和显示名称。这个类是将数据从后台传递到前端的关键。 ```java public class CheckboxBean { private int id; private String name; public CheckboxBean() {} public CheckboxBean(int id, String name) { this.id = id; this.name = name; } // getters and setters public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } } ``` 在后台,我们需要准备所有可能的选项(`allCheckboxBeans`)和用户已选中的选项(`checkboxBeans`)。`allCheckboxBeans`通常是从数据库中查询得到的一组`CheckboxBean`对象列表,而`checkboxBeans`则是用户之前保存的已选中的`CheckboxBean`对象列表。 在JSP页面中,我们使用`<s:checkboxlist>`标签来渲染复选框列表: ```jsp <td colspan="3" id="appTypeIds_td"> <s:checkboxlist name="appTypeIds" theme="simple" list="allCheckboxBeans" listKey="id" listValue="name" value="checkboxBeans.{#this.id}" /> </td> ``` 这里的参数解释如下: - `name`:用于绑定Action类中的属性,比如`appTypeIds`,它将保存用户选中的选项ID。 - `theme`:定义主题,这里使用了“simple”主题,使样式更简洁。 - `list`:绑定到Action类中的列表属性,如`allCheckboxBeans`,表示所有的选项。 - `listKey`:指定列表中每个元素的键,这里为`id`,即每个`CheckboxBean`对象的`id`属性。 - `listValue`:指定列表中每个元素的值,这里为`name`,即每个`CheckboxBean`对象的`name`属性。 - `value`:设置默认选中的值,这里使用了OGNL表达式`checkboxBeans.{#this.id}`,意味着如果`checkboxBeans`列表中有与当前`CheckboxBean`对象`id`相同的元素,则对应的复选框会被选中。 至于实现换行,我们可以借助JavaScript。在JSP页面加载完成后,通过获取`checkboxlist`对应的`td`元素,然后遍历其中的所有`checkbox`元素,每5个复选框后插入一个换行符`<br>`,并为每个复选框前添加一个`label`元素,以便于更好的可访问性。 ```javascript // 获取 checkboxlist 对应的 td var checkboxlist_td = document.getElementById("appTypeIds_td"); // 得到一个 checkbox 数组 var checkboxs = checkboxlist_td.getElementsByTagName("input"); for (var i = 0; i < checkboxs.length; i++) { if (i != 0 && i % 5 == 0) { var br = document.createElement("br"); // 在 checkbos 前插入 br checkboxlist_td.insertBefore(br, checkboxs[i]); } else { var label = document.createElement("label"); checkboxlist_td.insertBefore(label, checkboxs[i]); } } ``` 通过这种方式,我们可以实现`struts`标签`checkboxlist`的默认选中值设置,并通过JavaScript动态调整布局,使界面更加友好。在实际开发中,这种方法可以帮助我们更好地控制用户界面,提升用户体验。
- 粉丝: 4
- 资源: 15
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助