Struts2标签映射到Action对象类型.docx
《Struts2标签映射到Action对象类型.docx》由会员分享,可在线阅读,更多相关《Struts2标签映射到Action对象类型.docx(9页珍藏版)》请在冰豆网上搜索。
Struts2标签映射到Action对象类型
Struts2标签
Struts2包含众多的标签,有的是流程控制标签,有的是数据存取标签,还有Action数据显示标签。
每个标签都有一些通用属性,在这里统一说明一下:
name:
字段名称,对应Action的属性对象名称,非数据存取标签没有该属性;
label:
数据显示的标识名称,优先级高于key;
key:
如果使用国际化方式显示字段的名称,则配置该参数同时不要配置label参数;
labelposition:
确定该标签中label显示的位置,包括:
top、bottom、left、right;
theme:
指定模板,系统指定的模板包括:
simple、xhtml、ajax、css-xhtml、archive,一般统一在JSP
体内指定本页面的theme,而不用每个标签分别指定;
(1)form>标签的内嵌标签
这部分标签包含了所有页面提交到服务器后台Action的数据,例如:
文本框、选择框、下拉列表、上传文件、日期选择器等。
这些标签都和Action存在一对一的映射关系,即标签的name值和Action的属性变量名称一致,通过这些属性变量的Bean方法(getter/setter)存取数据。
1.checkbox>
(1)标签及属性说明
这个标签实现了复选框数据类型。
checkboxlabel="男"name="sex"value="true"fieldValue="男"/>
value:
标识是否选定该复选框,如果是true,则选定,否则没有选定,这里也只起到一个复选框初始状态的设定值;
fieldValue:
这个才是传递到Action的实际值,如果选定复选框,则将这个值传递到Action,否则这个值为“false”;
(2)标签映射到Action的属性对象类型
这个标签映射到Action的对象是String,如果选定则将fieldValue的值传递给该属性,否则将false赋给该属性。
Action对应的属性声明如下:
privateStringsex;
如果选定,则sex=newString("男");
如果没有选定,则sex=newString("false");
2.checkboxlist>
(1)标签及属性说明
这个标签实现了复选框组数据类型。
checkboxlistlist="#{'one':
'编辑','two':
'创建','three':
'删除'}"listKey="key"listValue="value"value="{0,2}"name="done"label="权限">
checkboxlist>
list:
给定复选框集合数据,这些数据可以是JSP页面设定,也可以是Action提供,可以是:
Cellection、Map、Enumeration、Iterator、array类型。
常用的是Map和Array型,如果Map型则数据格式如上所示,如果是Array型则如:
{'编辑','创建','删除'};
listKey:
指定list数据中那个属性作为是传递到Action的实际值,如上例中list的Map型数据的key对应的值传递到Action相应属性对象中,只有是Map型数据的时候才能够设定该属性;
listValue:
指定list数据中那个属性作为显示在页面上的内容,如上例子中list的Map型数据的value对应的值显示在页面上,只有是Map型数据的时候才能够设定该属性;
value:
给复选框设定初始选定状态,{}中的值是list的从0起始的序列号。
(2)标签映射到Action的属性对象类型
这个标签映射到Action的对象是集合类型的对象:
List、String[]。
Action对应的属性声明如下:
privateListdone;
或者
PrivateString[]done;
遍历done就可以获得复选框选定的值,如果是List型数据,则直接就是复选框显示的值,如果是Map型数据,就是listKey确定的集合数据属性对应的值。
备注:
鉴于checkbox>标签有诸多的问题,所以建议用checkboxlist>替代之。
3.combobox>
(1)标签及属性说明
这个标签实现了单行文本输入及下拉列表选择组合的数据类型。
comboboxlabel="请选择您喜欢的图书"list="{'Spring2.0','J2EE','Ajax'}"size="20"maxlength="20"name="book"/>
list:
提供下拉列表的初始值;
size:
单行文本输入框的宽度;
maxlength:
最大输入字符数量。
(2)标签映射到Action的属性对象类型
这个标签映射到Action的对象是String。
Action对应的属性声明如下:
privateStringbook;
4.datetimepicker>
(1)标签及属性说明
这个标签实现了单行文本输入及下拉列表选择组合的数据类型。
datetimepickername="birthday"displayFormat="yyyy-MM-dd"value="%{'2018-02-03'}"language="zh-cn"label="生日"/>
displayFormat:
指定日期内容显示的格式;
value:
给该标签赋初始值;
language:
指定该标签的语言环境;
(2)标签映射到Action的属性对象类型
这个标签映射到Action的对象是Date。
Action对应的属性声明如下:
privateDatebirthday;
备注:
Struts2.1.6以后的版本将datetimepicker标签放到了struts2-dojo-plugin包里面了,所以要使用该标签必须引入这个jar,同时在JSP头部引入这个标签库声明<%@tagliburi="/struts-dojo-tags"prefix="sx"%>。
备注:
这个标签在中文环境中使用的时候会出现乱码,是该标签的国际化js代码出现了bug,请修改struts2-gojo-plugin-2.1.8.jar中包org.apache.struts2下static下的dojo_zh.js,dojo_zh.js等相关代码。
并将static下所有目录及文件复制到服务器虚拟目录下的struts下,同时检查web.xml是否将js,css等静态资源的访问设置到过滤器中,如果是,则说明这些静态资源的访问还是经过Struts2,那么还是会出现乱码,或者发现对这些js修改不生效。
5.doubleselect>
(1)标签及属性说明
这个标签实现了前后数据关联的两个下拉框类型数据输入/输出。
doubleselectlabel="请选择所在省市"name="province"list="{'四川省','山东省'}"doubleName="city"doubleList="top=='四川省'?
{'成都市','绵阳市'}:
{'济南市','青岛市'}"/>
list:
主下拉表初始值;
doubleList:
以主表值为key的子下拉表初始值;
doubleName:
子表数据字段名称,和name一样对应Action属性变量名称;
(2)标签映射到Action的属性对象类型
这个标签映射到Action的对象是两个String类型。
Action对应的属性声明如下:
privateStringprovince;
privateStringcity;
6.file>
(1)标签及属性说明
这个标签实现了本地文件上传功能。
filename="file"label="上传照片"size="20"/>
size:
文件名称输入框长度;
(2)标签映射到Action的属性对象类型
这个标签映射到Action的对象是File类型。
如果是上传多个文件,则name属性值相同,映射到Action的属性变量是数组类型,Action对应的属性声明如下:
privateFile[]file;
privateString[]fileContentType;
PrivateString[]fileFileName;
7.optgrop>
(1)标签及属性说明
这个实现了在下拉列表中提供分类组的功能,所以要跟select>标签组合使用,一个select>标签可以包含多个optgrop>标签。
optgrouplabel="午夜文库"list="#{'one':
'游行者','two':
'恐怖分子'}"listKey="key"listValue="value"/>
list:
选项组的初始值;
listKey:
确定标签值的属性名称;
listValue:
确定标签显示的属性名称;
(2)标签映射到Action的属性对象类型
这个标签只能作为select>标签的内嵌标签使用,所以没有name属性,也就不存在Action映射属性对象,他只是给select>提供选项组数据。
8.optiontransferselect>
(1)标签及属性说明
这个在两个列表框中互相传递数据并从列表框中选择数据传递到Action的功能。
optiontransferselectlabel="最喜爱的图书"name="javaBook"list="{'《JavaWeb开发详解》','《Struts2深入详解》','《Java快速入门》'}"doubleName="cBook"doubleList="{'《VC++深入详解》','《C++Primer》','《C++程序设计语言》'}"/>
list:
左侧选项框初始数据;
doubleList:
右侧选项框初始数据;
doubleName:
右侧选项框名称,映射到Action属性对象名称;
(2)标签映射到Action的属性对象类型
这个标签包含两组数据,所以映射到Action也有两个属性对象,数据是List型,Action对应的属性声明:
privateListjavaBook;
privateListcBook;
9.password>
(1)标签及属性说明
这个实现了密码输入框功能。
passwordname="password"label="密码"/>
(2)标签映射到Action的属性对象类型
这个标签映射到Action的String型属性对象上。
10.radio>
(1)标签及属性说明
这个实现了从多个选项中单选一个的功能,属性配置和checkbox>完全相同。
radioname="singleBook"label="请选择您喜欢的图书"labelposition="top"list="{'Spring2.0','SpringInAction','JavaScript:
TheDefinitiveGuide'}"/>
List:
集合类型数据赋值;
(2)标签映射到Action的属性对象类型
这个标签映射到Action的String型属性对象上。
11.select>
(1)标签及属性说明
这个实现了从下拉列表中选择一个或者多个值的功能,属性配置和optiontransferselect>基本相同。
selectlabel="最高学历"name="education"list="{'高中','大学','硕士'