1. 使用Struts2的常用逻辑标签
1.1 property标签
功能说明
获取对象的属性值,目标对象默认位于ValueStack栈顶
标签属性
名称
必选
类型
说明
value
no
Object
对象的属性名称,默认直接输出 ValueStack 栈顶对象
default
no
String
默认值,如果 value 为 null 则输出此值
escape
no
Boolean
是否进行html 转义,默认为 true
escapeJavaScript
no
Boolean
是否进行JavaScript 转义,默认为 false
eg:
1.2 if-elseif-else标签
功能说明:
替代Java语法中的if/else
标签属性:
名称
必选
类型
说明
test
yes
Boolean
表达式,决定是否显示if/else if 标签体的内容
eg:
欢迎${user.name} ,
1.3 iterator标签
功能说明:
替代Java语言中foreach的功能
标签属性:
名称
必选
类型 类型
说明
value
true
Object
被迭代的对象
status
no
String
迭代状态,IteratorStatus对象
PS:不需要写 status 的就会自动迭代,比如customers 这个集合,迭代的时候,直接写value =name 就是 customer 的name了
eg:
2. 使用Struts2的常用UI标签
2.1 简单表单标签
Struts2 Form UI Tag
html tag
说明
textfield
input type="text"
文本输入框
password
input type="password"
密码输入框
textarea
textarea
多行文本输入框
hidden
input type="hidden"
隐藏域
file
input type = "file"
文件输入框
submit
input type="submit"
提交按钮
reset
input type ="reset"
重置按钮
checkbox
input type="checkbox"
复选框
2.2 select标签
功能说明:自带回显功能
生成select标签(含option)
标签属性:
名称
类型
说明
list
集合
指定option列表项
listKey
String
如果list元素是复合对象,指定 option value 对象属性
listValue
String
如果list 元素是复合对象,指定option text 对应属性
emptyOption
Boolean
是否添加空option
multiple
Boolean
是否允许多选
headerKey
String
设置第一选项对应的 option value 对象属性
headerValue
String
设置第一选项对应的 option text 对象属性
PS:复合对象的意思是如果是集合会自动迭代。
eg : 集合 List
listKey="custId" listValue="custName" headerKey="" headerValue="===请选择===" style="WIDTH: 180px">
2.3 checkboxlist标签
功能说明: 自带回显功能
生成一组checkbox
标签属性:
名称
类型
说明
list
集合
指定option列表项
listKey
String
如果list 元素是复合对象,指定option value 对应属性
listValue
String
如果list 元素是复合对象,指定option text 对应属性
PS:复合对象的意思是如果是集合会自动迭代
eg:
2.3.1 checkboxlist 和 checkbox 的区别
checkbox 和 checkboxlist的用法首先需要搞清楚;
checkbox 适用的场景,例如是、否;有、无;符合、不符合;男、女等这样的语境;
checkboxlist 适用于多个,例如兴趣爱好:篮球、足球、乒乓球、玩游戏、听音乐等等;
2.4 radio 标签
功能说明: 自带回显功能的,需要给 name 属性是必须的
生成一组radio
标签属性:
名称
类型
说明
list
集合
指定option列表项
listKey
String
如果list 元素是复合对象,指定option value 对应属性
listValue
String
如果list 元素是复合对象,指定option text 对应属性
name
String
name 属性是必须的,自带回显,还可以提交选中的值
eg:
3. 总结
使用struts2 标签的优缺点:
优点
自带回显功能,提升开发效率
简化代码
缺点
只能用于使用了 struts2 框架的代码,复用率不高