struts2中<s:checkboxlist/>的用法详解
Html代码
- 选择角色<br>
- <s:checkboxlist list="#request.roleuserList" listKey="roleId" listValue="roleName" value="#request.rolelist.{roleId}" name="roleIds"></s:checkboxlist>
说明:
其中#request.roleuserList对应后台放入request作用域的roleuserList这个list;
listKey="roleId"
这里的roleId对应后台roleuserList中role这个bean的属性roleId,listKey也是将要传入后台的值;
listValue="roleName" 自然是显示在页面上的内容了;
value="#request.rolelist.{roleId}"
这句话的意思是,给s:checkboxlist选取默认值,将对应后台放入request作用域的rolelist这个list中的roleid组合成数组,
类似{1,2,3}这种,然后标签会自动匹配。
name="roleIds“ 这个roleIds可以在后台action中使用get set一个roleIds数组属性来取值,或者直接用request作用域取值,都要放数组中;
struts2的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;
struts2中<s:checkboxlist/>的用法详解的更多相关文章
- SVN中tag branch trunk用法详解
SVN中tag branch trunk用法详解 2010-05-24 18:32 佚名 字号:T | T 本文向大家简单介绍一下SVN中tag branch trunk用法,SVN中tag bran ...
- Oracle数据库中序列(SEQUENCE)的用法详解
Oracle数据库中序列(SEQUENCE)的用法详解 在Oracle数据库中,序列的用途是生成表的主键值,可以在插入语句中引用,也可以通过查询检查当前值,或使序列增至下一个值.本文我们主要介绍了 ...
- delphi中Application.MessageBox函数用法详解
delphi中Application.MessageBox函数用法详解 Application.MessageBox是TApplication的成员函数,声明如下:functionTApplicati ...
- .NET中的Timer类型用法详解
这篇文章主要介绍了.NET中的Timer类型用法,较为详细的分析了Timer类型在各种环境下的用法,需要的朋友可以参考下 在.NET FrameWork中有多个Timer,那么怎么根据实际情况进行 ...
- ubuntu中rar与unrar用法详解
本文转载:http://helloklzs.iteye.com/blog/1139993 安装: sudo apt-get install rar 这样就可以安装了 删除是以下语句 sudo apt- ...
- Javascript中的this关键字用法详解
在javascript里面,this是一个特殊的对象,它不像其他编程语言那样,是存储在实例中的值,直接指向此实例. 而是作为一个单独的指针,在不同的情况之下,指向不同的位置,这也是为什么我们会将它搞混 ...
- Python中scatter函数参数用法详解
1.scatter函数原型 2.其中散点的形状参数marker如下: 3.其中颜色参数c如下: 4.基本的使用方法如下: #导入必要的模块 import numpy as np import matp ...
- 编程中,static的用法详解
C++的static有两种用法:面向过程程序设计中的static和面向对象程序设计中的static.前者应用于普通变量和函数,不涉及类:后者主要说明static在类中的作用.一.面向过程设计中的sta ...
- VC++中MessageBox的常见用法详解
消息框是个很常用的控件,属性比较多,本文列出了它的一些常用方法,及指出了它的一些应用场合. 1.MessageBox("这是一个最简单的消息框!"); ...
随机推荐
- Pandas 如何通过获取双(多)重索引获取指定行DataFrame数据
图片看不清楚的话,可以右键选择:“在新标签页中打开图片(I)” 参数 df.loc[(a,b),c]中第一个参数元组为索引内容,a为level0索引对应的内容,b为level1索引对应的内容 因为df ...
- Win查询注册表获取CPU与内存参数
#include "stdafx.h" void dump_machine_info( HANDLE fh ) { CHAR Str[MAX_PATH*3]; CHAR MHzSt ...
- 关于理财和买房 http://shouce.jb51.net/phpcms/ https://www.bj.cmbchina.com/bjtransweb/wsgzd_employ/login.jsp
对于绝大多数家境普通的年轻人来说,青年阶段无疑是一生中手头最紧的时候.原因很简单,这个阶段花钱最多,挣钱却最少.年轻人收入往往是硬性的低,开支却往往是硬性 的高.已经加班到晕头转向的小职员,很难再 ...
- BigData Technique&&Application指南-笔记1
1.数据的量级 传统企业数据量基本上在TB之上,大型互联网企业达到了PB以上. 2.大量不同的数据类型 结构化数据:是存储在数据库里,可以用二维表来逻辑表达数据. 半结构的非结构化数据:一般都是纯 ...
- string与CString对比
string是标准C++库中的字符串类,CString是在Windows开发环境下常用的字符串类,CString目前已从MFC中分离出来可以单独使用,只需包含atlstr.h即可. 相比string, ...
- isEnable() 和 isDisplayed() 和 isSelected()
isEnable().isDisplayed()和isSelected() 1.以上三个为布尔类型的函数 2.isEnable用于存储input.select等元素的可编辑状态,可以编辑返回true, ...
- 4. Median of Two Sorted Arrays(2个有序数组的中位数)
There are two sorted arrays nums1 and nums2 of size m and n respectively. Find the median of the two ...
- 分布式存储系统 Ceph
你了解Ceph吗? Ceph是一种分布式存储系统,它可以将多台服务器组成一个超大集群,把这些机器中的磁盘资源整合到一块儿,形成一个大的资源池(PB级别),然后按需分配给应用使用. 那么你知道Ceph的 ...
- 常用RDD
只作为我个人笔记,没有过多解释 Transfor map filter filter之后,依然有三个分区,第二个分区为空,但不会消失 flatMap reduceByKey groupByKey() ...
- Webpack+React+ES6 最新环境搭建和配置(2017年)
刚刚学习React,发现React在ES6下的语法才是本体,结合ES6新的语言特性,使组件化开发显得更加直观.而且现在的Angular2也开始使用支持强类型的TypeScript,转译(transpi ...