Struts2:Struts2常用标签总结
一. Struts2的常用逻辑标签
1.1 property标签
功能说明:获取对象的属性值,目标对象默认位于ValueStack栈顶。
示例如下:
<s:property value="user.userName"/>
标签属性:
名称 | 必选 | 类型 | 说明 |
---|---|---|---|
value | no | Object | 对象的属性名称, 默认直接输出 ValueStack栈顶对象 |
default | no | String | 默认值,如果 value 为 null 则输出此值 |
escape | no | Boolean | 是否进行html 转义,默认为 true |
escapeJavaScript | no | Boolean | 是否进行JavaScript 转义,默认为 false |
1.2 if-elseif-else标签
功能说明: 替代Java语法中的if/else
示例如下:
欢迎${user.name} ,
<s:if test="user.role == 'admin'">系统管理员</s:if>
<s:elseif test="user.role == 'member'">会员</s:elseif>
<s:else>游客</s:else>
标签属性:
名称 | 必选 | 类型 | 说明 |
---|---|---|---|
test | yes | Boolean | 表达式,决定是否显示if/else if 标签体的内容 |
1.3 iterator标签
功能说明: 替代Java语言中foreach的功能
示例如下:
<s:iterator value="products">
<s:property value="name"/>,<s:property value="price"/>
<br />
</s:iterator>
标签属性:
名称 | 必选 | 类型 | 说明 |
---|---|---|---|
value | true | Object | 被迭代的对象 |
status | no | String | 迭代状态,IteratorStatus对象 |
注意: 不需要写 status 的就会自动迭代,比如customers 这个集合,迭代的时候,直接写value =name 就是 customer 的name了
二. 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 customers 的下拉列表标签的使用
<s:select list="customers" name="customer.custId" listKey="custId" listValue="custName" headerKey="" headerValue="===请选择===" style="WIDTH: 180px">
</s:select>
标签属性:
名称 | 类型 | 说明 |
---|---|---|
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 对象属性 |
2.3 checkboxlist标签
功能说明: 自带回显功能,生成一组checkbox
示例如下:
<s:checkboxlist name="favors" list="products" listKey="id" listValue="name"/>
标签属性:
名称 | 类型 | 说明 |
---|---|---|
list | 集合 | 指定option列表项 |
listKey | String | 如果list 元素是复合对象,指定option value 对应属性 |
listValue | String | 如果list 元素是复合对象,指定option text 对应属性 |
checkbox 和 checkboxlist的用法如下:
checkbox 适用的场景,例如是、否;有、无;符合、不符合;男、女等这样的语境;
checkboxlist 适用于多个,例如兴趣爱好:篮球、足球、乒乓球、玩游戏、听音乐等等;
2.4 radio 标签
功能说明: 自带回显功能的,生成一组radio,name 属性是必须的。
示例如下:
<s:radio name="favorite" list="products" listKey="id" listValue="name"/>
标签属性:
名称 | 类型 | 说明 |
---|---|---|
list | 集合 | 指定option列表项 |
name | String | name 属性是必须的,自带回显,还可以提交选中的值 |
listKey | String | 如果list 元素是复合对象,指定option value 对应属性 |
listValue | String | 如果list 元素是复合对象,指定option text 对应属性 |
三. 总结
使用struts2 标签的优点:
- 自带回显功能,提升开发效率;
- 简化代码。
使用struts2 标签的缺点:
- 只能用于使用了 struts2 框架的代码,复用率不高。
参考:https://yq.aliyun.com/articles/591608?utm_content=m_49517