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: <s:property value="user.userName"/>
1.2 if-elseif-else标签
功能说明:
替代Java语法中的if/else
标签属性:
| 名称 |
必选 |
类型 |
说明 |
| test |
yes |
Boolean |
表达式,决定是否显示if/else if 标签体的内容 |
eg:
欢迎${user.name} ,
<s:if test="user.role == 'admin'">系统管理员</s:if>
<s:elseif test="user.role == 'member'">会员</s:elseif>
<s:else>游客</s:else>
1.3 iterator标签
功能说明:
替代Java语言中foreach的功能
标签属性:
| 名称 |
必选 |
类型 类型 |
说明 |
| value |
true |
Object |
被迭代的对象 |
| status |
no |
String |
迭代状态,IteratorStatus对象 |
PS:不需要写 status 的就会自动迭代,比如customers 这个集合,迭代的时候,直接写value =name 就是 customer 的name了
eg:
<s:iterator value="products">
<s:property value="name"/>,<s:property value="price"/>
<br />
</s:iterator>
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<custoemr> customers 的下拉列表标签的使用
<s:select list="customers" name="customer.custId"
listKey="custId" listValue="custName"
headerKey="" headerValue="===请选择==="
style="WIDTH: 180px">
</s:select>
2.3 checkboxlist标签
功能说明: 自带回显功能
生成一组checkbox
标签属性:
| 名称 |
类型 |
说明 |
| list |
集合 |
指定option列表项 |
| listKey |
String |
如果list 元素是复合对象,指定option value 对应属性 |
| listValue |
String |
如果list 元素是复合对象,指定option text 对应属性 |
PS:复合对象的意思是如果是集合会自动迭代
eg:
<s:checkboxlist name="favors" list="products" listKey="id" listValue="name"/>
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:
<s:radio name="favorite" list="products" listKey="id" listValue="name"/>
3. 总结
使用struts2 标签的优缺点:
-
优点
-
缺点
- 只能用于使用了 struts2 框架的代码,复用率不高