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 框架的代码,复用率不高