Struts2标签的总结
一、struts2标签库概述:
struts2的标签库大大简化了数据的输出,也提供了大量标签来生成页面效果。
从JSP2.0规范开始,JSP引入了简化自定义标签的规范,开发自定义标签更加简单,简化的自定义标签开发只需要如下几个步骤:
(1) 开发自定义标签处理类,标签处理统一继承SimpleTagSupport类,无需分别继承TagSupport 。
(2) 在JSP中使用taglib编译指定导入标签库,然后才可以使用自定义标签。
二、struts2标签的分类:
一共有这样的四大类:
1、 数据标签<s:property>:
动态呈现Action执行之后所产生的信息、国际化文本以及Action生成的URL和链接等。
2、控制标签 if/elseif/else <s:iterator>:
用来控制呈现给最终视图的信息以及控制对集合的操作。
2、 UI标签:
封装了HTML表单标签和其他用户界面组件。
3、 杂项标签
三、导入struts2的标签库
在JSP页面中的头部,这样导入struts2的标签库:
<%@taglib uri="/struts-tags" prefix="s"%>
(1) struts2数据标签:
1)<s:property>
输出value所指对象的值,如果value没提供,默认为值栈栈顶端的元素。
名称 | 必需 | 默认 | 类型 | 描述 |
default | 否 | String | 如果属性是null则显示的default值 | |
escape | 否 | true | Booelean | 是否escape HTML |
value | 否 | 栈顶 | Object | 要显示的值 |
2) <s:set>
赋予变量一个特定范围内的值。当希望给一个变量赋一个复杂的表达式,每次访问该变量而不是复杂的表达式时用到。
名称 | 必需 | 默认 | 类型 | 描述 |
name | 是 | String | 变量名字 | |
scope | 否 | String | 变量作用域,可以为application, session, request, page, 或action. | |
value | 否 | Object/String | 将会赋给变量的值 |
(2) struts2控制标签
1) if/elseif/else
执行基本的条件流转
名称 | 必需 | 默认 | 类型 | 描述 | 备注 |
test | 是 | Boolean | 决定标志里内容是否显示的表达式 | else标志没有这个参数 |
2) <s:iterator>
用于遍历集合(java.util.Collection)或枚举值(java.util.Iterator)。
名称 | 必需 | 默认 | 类型 | 描述 |
status | 否 | String | 如果设置此参数,一个IteratorStatus的实例将会压入每个遍历的堆栈 | |
value | 否 | Object/String | 要遍历的可枚举的(iteratable)数据源,或者将放入新列表(List)的对象 |
(3) struts2杂项标签
1)<s:url>用于创建url可以通过"param"标签提供request参数。
名称 | 必需 | 默认 | 类型 | 描述 |
id | 否 | String | ID | |
scope | 否 | String | 变量作用域,可以为application, session, request, page, 或action. | |
value | 否 | Object/String | 将会赋给变量的值 |
2)<s:include>
包含一个servlet的输出(servlet或jsp的页面)。
名称 | 必需 | 默认 | 类型 | 描述 |
status | 否 | String | 如果设置此参数,一个IteratorStatus的实例将会压入每个遍历的堆栈 | |
value | 否 | Object/String | 要遍历的可枚举的(iteratable)数据源,或者将放入新列表(List)的对象 |
3)<s:param>
为其他标签提供参数,比如include标签和bean标签.
名称 | 必需 | 默认 | 类型 | 描述 |
name | 否 | String | 参数名 | |
value | 否 | String | value表达式 |
(4) struts2UI标签
以下是UI标签的同样属性:
属性 | Theme | 数据类型 | 描述 |
name | simple | String | 表单元素映射的名字 |
value | simple | Object | 表单元素的值 |
label | xhtml | String | xhtml theme中使用的label(simple theme会忽略) |
labelposition | xhtml | String | label元素的位置。默认label位于元素的左边 |
required | xhtml | Boolean | 是否必填 |
id | simple | String | HTML id属性 |
cssClass | simple | String | class属性 |
cssStyle | simple | String | style属性 |
disabled | simple | Boolean | disabled属性 |
tabindex | simple | String | tabindex属性 |
theme | String | 模板主题 | |
template | String | 模板 |
1) form标签
生成HTML form标记
属性 | 数据类型 | 描述 |
action | String | 要提交的Action名字 |
namespace | String | Action的命名空间,默认的命名空间取决于当前的request |
method | String | post或get |
target | String | 目标窗口,比如框架名、_blank、_top等 |
enctype | String | 文件上传设置为multipart/form-data |
validate | Boolean | 进行客户端校验 |
2) textfield标签和password标签
生成HTML 文本输入控件和密码输入控件
属性 | 数据类型 | 描述 |
maxlength | String | 可输入最大长度 |
readonly | Boolean | |
size | String | 可视尺寸 |
show | Boolean | password标签专用,回显密码,默认为false |
3) textarea标签
生成HTML 文本输入框控件
属性 | 数据类型 | 描述 |
cols | String | |
rows | String | |
readonly | Boolean | |
wrap | Boolean | 指定文本区域内的内容是否应该换行 |
4) checkbox标签
生成HTML 单值的复选框
属性 | 数据类型 | 描述 |
fieldValue | String | 复选框被选中时提交给Action的值 |
5) select标签
生成HTML 下拉选框
属性 | 数据类型 | 描述 |
list | 集合 | 为下拉选项提供数据 |
listKey | String | 集合中元素Bean的属性用于选项的value |
listValue | String | 集合中元素Bean的属性用于选项的文本 |
headerKey | String | 首选现的value |
headerValue | String | 首选项的文本 |
emptyOption | Boolean | 是否放置空选项在首选现和实际选现之间 |
multiple | Boolean | 是否多选 |
size | String | 显示条数 |
6) radio标签
生成HTML 单选按钮组
属性 | 数据类型 | 描述 |
list | 集合 | 为单选选项提供数据 |
listKey | String | 集合中元素Bean的属性用于选项的value |
listValue | String | 集合中元素Bean的属性用于选项的文本 |
7) hidden标签
生成HTML 隐藏输入控件