struts2标签
2013-12-08 22:41
344 查看
//////////////////////////////////////
.Struts2标签分类/////////////////
//////////////////////////////////////
1.分类:
Struts2标签库:
用户界面标签库 (表单/非表单标签库),
非用户界面标签库 (控制标签库,数据访问标签库),
ajax支持标签库
2.导入taglib
<%@taglib prefix="s" uri="/struts-tags" %>
//////////////////////////////////
.控制标签///////////////////
/////////////////////////////////
描述:
执行基本的条件流转。
属性:
------------------------------------------------------------------------------
名称 必需 类型 描述 备注
------------------------------------------------------------------------------
test 是 boolean 决定标志里的内容 else标志没有这个参数
是否显示的表达式
------------------------------------------------------------------------------
id 否 Object/String 用来标识元素的id
在UI和表单中为HTML的id属性
------------------------------------------------------------------------------
例子:
<s:set name="age" value="61"/>
<s:if test="${age > 60}">
老年人
</s:if>
<s:elseif test="${age > 35}">
中年人
</s:elseif>
<s:elseif test="${age > 15}" id="wawa">
青年人
</s:elseif>
<s:else>
少年
</s:else>
用于循环数组,集合和Map
属性:
value:数组,集合或Map
var:当前元素
status:当前元素的状态index,count,even,odd,first,last
参数:
----------------------------------------------------------------------
名称 必需 类型 描述
----------------------------------------------------------------------
status 否 String 如果设置此参数,
一个IteratorStatus的实例
将会压入每一个遍历的堆栈
----------------------------------------------------------------------
value 否 Object/String 要遍历的可枚举的(iteratable)数据源,
或者将放入的新列表(List)的对像
----------------------------------------------------------------------
id 否 Object/String 用来标识元素的id。
在ui和表单中为HTML的id属性
----------------------------------------------------------------------
例子:
遍历List
<s:iterator value="{'中国', '美国'}" var="cur" status="st">
<s:property value="#st.count"/>
<s:property value="#cur"/><br/>
</s:iterator>
遍历Map
<s:iterator value="#{1: '中国', 2: '美国', 3: '日本'}" var="cur">
<s:property value="#cur.key"/>
<s:property value="#cur.value"/><br/>
</s:iterator>
例子1:
<s:iterator value="costList">
<s:property value="id" />
<s:property value="feeName" />
<s:property value="baseDuration" />
<s:property value="baseCost" />
<s:property value="unitCost" />
<s:property value="createTime" />
<s:property value="startTime" />
<s:if test="status==0">
开通
</s:if>
<s:if test="status==1">
暂停
</s:if>
</s:iterator>
例子2:
<s:iterator begin="1" end="totalPages" var="p">
<s:if test="#p==page">
<a href="#" class="current_page"><s:property />
</a>
</s:if>
<s:else>
<a href="list.action?page=<s:property/>"><s:property/>
</a>
</s:else>
</s:iterator>
将多个集合合并成一个集合
属性:: var - 新集合的名称
示例:
<s:append var="newCollection">
<s:param value="{'中国', '美国', '日本'}"></s:param>
<s:param value="{'德国', '泰国', '新加坡'}"></s:param>
</s:append>
<s:iterator value="#newCollection"var="cur">
<s:property value="#cur"/><br/>
</s:iterator>
注:merge用法和append相同,结果的组织不一样.
将一个字符串按照指定分隔符分割成一个字符串数组
属性::
separator: 分隔符
val(value): 字符串
count:字符串數組中元素個數
示例:
<s:generator separator="," val="'中,华人,民共和,国'" var="arr"/>
<s:iterator value="#arr" var="cur">
<s:property value="#cur"/><Br/>
</s:iterator>
从集合中取出一个子集,
注意:子集被放在值栈的顶部,subset标签执行完后子集自动移除
属性::
source: 集合
start: 起始索引
count: 子集中元素个数
示例:
<s:subset source="{'中国', '美国', '日本', '韩国'}" start="1"count="3">
<s:iterator var="cur">
<s:property value="#cur"/>
</s:iterator>
</s:subset>
根据定义的排序规则,
对集合中的元素进行排序,
排序后生成的新的集合放在值栈顶部,
标签结束后自动删除.
属性::
comparator: 实现Comparator的类
source: 集合
示例:
<s:bean name="com.aptech.sorted.LengthSorted" var="ls"/>
<s:sort comparator="#ls" source="{'中1','88w','777','6666'}">
<s:iterator>
<s:property/><br/>
</s:iterator>
</s:sort>
/////////////////////////////////////////////////////
.数据标签////////////////////////////////
/////////////////////////////////////////////////////
用于设置一个新变量,并将新变量放入指定的作用域中
属性:
Var: 新变量的引用
Value:值
示例:
<s:set var="v1"value="'中华人民共和国'" scope="page">
</s:set>
<s:property value="#attr.v1"/>
注:如果不指定,默认放在Stack Context中
将某个值置于值栈的顶部,标签结束后,将从值栈中移除.
属性:
value: 即值
示例:
<s:push value="'中华人民共和国'" >
<s:property/>
</s:push>
用于创建javabean的实例,
如果设置了var值,则存于Stack Context,
否则,标签结束后自动移除.
属性:
name: javabean类名(带包)
var: 名称
示例:
<s:bean name="com.aptech.entity.Student" var="stu">
<s:param name="sid">1</s:param>
<s:param name="sname">张三好</s:param>
<s:param name="sbirthday">2009-9-9</s:param>
</s:bean>
<s:property value="#stu.sbirthday"/>
格式化日期并输出
属性:
name:日期
format:格式化字符串
示例:
<%pageContext.setAttribute("d", new Date()); %>
<s:date name="#attr.d" format="yyyy年MM月dd日 HH时mm分ss秒"/>
用于当前环境下Value Stack和stackcontext中保存的数据
例子:
<s:debug/>
用于将一个html,jsp或servlet包含到当前页面中,使用param传递参数
属性:
value:包含页面名称
示例:
<s:include value="MyHtml.html"></s:include>
生成URL地址,可以通过param标签传递请求参数,如果参数为中文,自动编码
属性:
value: url值
action: action名称,自动加上.action
示例:
<s:url value="control.jsp"var="url">
<s:param name="id">中华人民共和国</s:param>
</s:url>
<a href="<s:propertyvalue="#url" />">链接</a>
<s:url action="test"var="url2">
</s:url>
<s:property value="#url2"/>
用于输出值栈,Stack Context中的数据
属性:
value:要输出的值
例子:
<s:property value="ognl表达式"/>
如果输出值栈中的值,不用#
如果输出Stack Context中的值,要用#
如果省略value,表示取出值栈的栈顶对象输出
////////////////////////////////////////
总结
OGNL是标签的基础,要理解OGNL的基本使用,在struts2中,OGNL必须和标签紧密配合
控制标签包含一组条件判断标签和一组集合遍历和操作标签
数据标签包含一组数据访问相关的标签
/////////////////////////////////////////
.Struts2标签分类/////////////////
//////////////////////////////////////
1.分类:
Struts2标签库:
用户界面标签库 (表单/非表单标签库),
非用户界面标签库 (控制标签库,数据访问标签库),
ajax支持标签库
2.导入taglib
<%@taglib prefix="s" uri="/struts-tags" %>
//////////////////////////////////
.控制标签///////////////////
/////////////////////////////////
1.If elseif else
描述:
执行基本的条件流转。
属性:
------------------------------------------------------------------------------
名称 必需 类型 描述 备注
------------------------------------------------------------------------------
test 是 boolean 决定标志里的内容 else标志没有这个参数
是否显示的表达式
------------------------------------------------------------------------------
id 否 Object/String 用来标识元素的id
在UI和表单中为HTML的id属性
------------------------------------------------------------------------------
例子:
<s:set name="age" value="61"/>
<s:if test="${age > 60}">
老年人
</s:if>
<s:elseif test="${age > 35}">
中年人
</s:elseif>
<s:elseif test="${age > 15}" id="wawa">
青年人
</s:elseif>
<s:else>
少年
</s:else>
2.Iterator(迭代)
用于循环数组,集合和Map
属性:
value:数组,集合或Map
var:当前元素
status:当前元素的状态index,count,even,odd,first,last
参数:
----------------------------------------------------------------------
名称 必需 类型 描述
----------------------------------------------------------------------
status 否 String 如果设置此参数,
一个IteratorStatus的实例
将会压入每一个遍历的堆栈
----------------------------------------------------------------------
value 否 Object/String 要遍历的可枚举的(iteratable)数据源,
或者将放入的新列表(List)的对像
----------------------------------------------------------------------
id 否 Object/String 用来标识元素的id。
在ui和表单中为HTML的id属性
----------------------------------------------------------------------
例子:
遍历List
<s:iterator value="{'中国', '美国'}" var="cur" status="st">
<s:property value="#st.count"/>
<s:property value="#cur"/><br/>
</s:iterator>
遍历Map
<s:iterator value="#{1: '中国', 2: '美国', 3: '日本'}" var="cur">
<s:property value="#cur.key"/>
<s:property value="#cur.value"/><br/>
</s:iterator>
例子1:
<s:iterator value="costList">
<s:property value="id" />
<s:property value="feeName" />
<s:property value="baseDuration" />
<s:property value="baseCost" />
<s:property value="unitCost" />
<s:property value="createTime" />
<s:property value="startTime" />
<s:if test="status==0">
开通
</s:if>
<s:if test="status==1">
暂停
</s:if>
</s:iterator>
例子2:
<s:iterator begin="1" end="totalPages" var="p">
<s:if test="#p==page">
<a href="#" class="current_page"><s:property />
</a>
</s:if>
<s:else>
<a href="list.action?page=<s:property/>"><s:property/>
</a>
</s:else>
</s:iterator>
3.集合合并标签 append和merge
将多个集合合并成一个集合
属性:: var - 新集合的名称
示例:
<s:append var="newCollection">
<s:param value="{'中国', '美国', '日本'}"></s:param>
<s:param value="{'德国', '泰国', '新加坡'}"></s:param>
</s:append>
<s:iterator value="#newCollection"var="cur">
<s:property value="#cur"/><br/>
</s:iterator>
注:merge用法和append相同,结果的组织不一样.
4.字符串分割标签 generator
将一个字符串按照指定分隔符分割成一个字符串数组
属性::
separator: 分隔符
val(value): 字符串
count:字符串數組中元素個數
示例:
<s:generator separator="," val="'中,华人,民共和,国'" var="arr"/>
<s:iterator value="#arr" var="cur">
<s:property value="#cur"/><Br/>
</s:iterator>
5、集合子集标签 subset
从集合中取出一个子集,
注意:子集被放在值栈的顶部,subset标签执行完后子集自动移除
属性::
source: 集合
start: 起始索引
count: 子集中元素个数
示例:
<s:subset source="{'中国', '美国', '日本', '韩国'}" start="1"count="3">
<s:iterator var="cur">
<s:property value="#cur"/>
</s:iterator>
</s:subset>
6、排序标签 sort
根据定义的排序规则,
对集合中的元素进行排序,
排序后生成的新的集合放在值栈顶部,
标签结束后自动删除.
属性::
comparator: 实现Comparator的类
source: 集合
示例:
<s:bean name="com.aptech.sorted.LengthSorted" var="ls"/>
<s:sort comparator="#ls" source="{'中1','88w','777','6666'}">
<s:iterator>
<s:property/><br/>
</s:iterator>
</s:sort>
/////////////////////////////////////////////////////
.数据标签////////////////////////////////
/////////////////////////////////////////////////////
1.设置变量标签 set
用于设置一个新变量,并将新变量放入指定的作用域中
属性:
Var: 新变量的引用
Value:值
示例:
<s:set var="v1"value="'中华人民共和国'" scope="page">
</s:set>
<s:property value="#attr.v1"/>
注:如果不指定,默认放在Stack Context中
2.栈顶置值标签 push
将某个值置于值栈的顶部,标签结束后,将从值栈中移除.
属性:
value: 即值
示例:
<s:push value="'中华人民共和国'" >
<s:property/>
</s:push>
3.javabean创建标签 bean
用于创建javabean的实例,
如果设置了var值,则存于Stack Context,
否则,标签结束后自动移除.
属性:
name: javabean类名(带包)
var: 名称
示例:
<s:bean name="com.aptech.entity.Student" var="stu">
<s:param name="sid">1</s:param>
<s:param name="sname">张三好</s:param>
<s:param name="sbirthday">2009-9-9</s:param>
</s:bean>
<s:property value="#stu.sbirthday"/>
4.日期格式化标签 date
格式化日期并输出
属性:
name:日期
format:格式化字符串
示例:
<%pageContext.setAttribute("d", new Date()); %>
<s:date name="#attr.d" format="yyyy年MM月dd日 HH时mm分ss秒"/>
5.调试标签 debug
用于当前环境下Value Stack和stackcontext中保存的数据
例子:
<s:debug/>
6.资源包含标签 include
用于将一个html,jsp或servlet包含到当前页面中,使用param传递参数属性:
value:包含页面名称
示例:
<s:include value="MyHtml.html"></s:include>
7.URL生成标签 url
生成URL地址,可以通过param标签传递请求参数,如果参数为中文,自动编码
属性:
value: url值
action: action名称,自动加上.action
示例:
<s:url value="control.jsp"var="url">
<s:param name="id">中华人民共和国</s:param>
</s:url>
<a href="<s:propertyvalue="#url" />">链接</a>
<s:url action="test"var="url2">
</s:url>
<s:property value="#url2"/>
8.数据输出标签 property
用于输出值栈,Stack Context中的数据
属性:
value:要输出的值
例子:
<s:property value="ognl表达式"/>
如果输出值栈中的值,不用#
如果输出Stack Context中的值,要用#
如果省略value,表示取出值栈的栈顶对象输出
////////////////////////////////////////
总结
OGNL是标签的基础,要理解OGNL的基本使用,在struts2中,OGNL必须和标签紧密配合
控制标签包含一组条件判断标签和一组集合遍历和操作标签
数据标签包含一组数据访问相关的标签
/////////////////////////////////////////
相关文章推荐
- struts2 标签的使用之 s:iterator
- Struts2 <s:iterator> 标签实现 for 循环式 循环控制
- 关于Struts2中的标签介绍(一)
- struts2 标签不能使用EL 表单式
- OGNL,_JSTL,_STRUTS2标签中符号#,$,%的用法示例
- struts2学习——标签库
- struts2 标签<s:if/>使用总结
- Struts2标签如何实现For循环 像JSTL's <c:forEach begin="..." end="..." ...> 中的用法
- Struts2标签库
- struts2的s:iterator 标签 详解
- Struts2中<result>标签
- struts2 模型驱动Action属性 -标签 -Action属性不能赋值。
- struts2 常用标签
- Struts2的标签库(二)之数据标签
- Struts2中标签取值使用Trim
- 《Java从入门到放弃》入门篇:Struts2的常用基本标签
- struts2标签
- struts2控制标签
- struts2标签使用收集
- struts2标签不显示Label的解决方法