Struts2的标签
1、Struts2标签分为4类:
² 数据标签:动态呈现Action执行之后所产生的信息、国际化文本以及Action生成的URL和链接等。
² 控制标签:用来控制呈现给最终视图的信息以及控制对集合的操作
² UI标签:封装了HTML表单标签和其他用户界面组件。
² 杂项标签
2、导入Struts2的标签库
<%@taglib uri="/struts-tags" prefix="s"%>
(1)数据标签:
<s:property>
– 输出value所指对象的值,如果value没提供,默认为值栈栈顶端的元素。
名称 |
必需 |
默认 |
类型 |
描述 |
default |
否 |
|
String |
如果属性是null则显示的default值 |
escape |
否 |
true |
Booelean |
是否escape HTML |
value |
否 |
栈顶 |
Object |
要显示的值 |
数据标签结合ONGL的使用:
<!-- 如果value没提供,默认为值栈栈顶端的元素。 -->
<s:property/>
<!-- 在action中使用set方法后传递到jsp页面的值可以利用以下struts标签获取 -->
<s:property value="message"/>
<s:property value="#request.message"/>
<s:property value="#attr.message"/>
<!-- 也可以使用el表达式获取等等.... -->
<!-- 如果当在action中使用set方法往jsp页面传递对象时候,可以使用以下方式获取 -->
<tr><td><s:property value="good.name"/></td>
<td><s:property value="good.price"/></td>
<td><s:property value="good.crateDate"/></td>
<!-- <td><s:property value="#attr.good.getCrateDate()"/></td> --> </tr>
<!-- 如果当在action中使用set方法往jsp页面传递对象时候,可以使用以下 方式获取 -->
<tr><td><s:property value="#request.good.name"/></td>
<td><s:property value="#attr.good.price"/></td>
<td><s:property value="#request.good.getCrateDate()"/></td>
<!-- <td><s:property value="#attr.good.getCrateDate()"/></td> -->
</tr>
<!-- 以上说明只用当page,request,session,application,attr使用#求值 -->
• <s:set>
– 赋予变量一个特定范围内的值。当希望给一个变量赋一个复杂的表达式,每次访问该变量而不是复杂的表达式时用到
名称 |
必需 |
默认 |
类型 |
描述 |
name |
是 |
|
String |
变量名字 |
scope |
否 |
|
String |
变量作用域,可以为application, session, request, page, 或action. |
value |
否 |
|
Object/String |
将会赋给变量的值 |
(2)Struts2的控制标签
• if/elseif/else
– 执行基本的条件流转
名称 |
必需 |
默认 |
类型 |
描述 |
备注 |
test |
是 |
|
Boolean |
决定标志里内容是否显示的表达式 |
else标志没有这个参数 |
• <s:iterator>
– 用于遍历集合(java.util.Collection)或枚举值(java.util.Iterator)。
名称 |
必需 |
默认 |
类型 |
描述 |
status |
否 |
|
String |
如果设置此参数,一个IteratorStatus的实例将会压入每个遍历的堆栈 |
value |
否 |
|
Object/String |
要遍历的可枚举的(iteratable)数据源,或者将放入新列表(List)的对象 |
iterator标签用于对集合进行迭代,这里的集合包含List、Set和数组。
<s:set name="list" value="{'zhangming','xiaoi','liming'}" />
<s:iterator value="#list" status="st">
<font color=<s:if test="#st.odd">red</s:if><s:else>blue</s:else>>
<s:property /></font><br>
</s:iterator>
value:可选属性,指定被迭代的集合,如果没有设置该属性,则使用ValueStack栈顶的集合。
id:可选属性,指定集合里元素的id。
status:可选属性,该属性指定迭代时的IteratorStatus实例。该实例包含如下几个方法:
int getCount(),返回当前迭代了几个元素。
int getIndex(),返回当前迭代元素的索引。
boolean isEven(),返回当前被迭代元素的索引是否是偶数
boolean isOdd(),返回当前被迭代元素的索引是否是奇数
boolean isFirst(),返回当前被迭代元素是否是第一个元素。
boolean isLast(),返回当前被迭代元素是否是最后一个元素。
(3)Struts的杂项标签
<s:url>用于创建url可以通过"param"标签提供request参数
名称 |
必需 |
默认 |
类型 |
描述 |
id |
否 |
|
String |
ID |
scope |
否 |
|
String |
变量作用域,可以为application, session, request, page, 或action. |
value |
否 |
|
Object/String |
将会赋给变量的值 |
<s:url action="./updateUser.action" id="up">
<s:param name="user.id" value="#user.id"></s:param>
</s:url>
<s:a href="%{up}">修改</s:a>
• <s:include>
– 包含一个servlet的输出(servlet或jsp的页面)。
名称 |
必需 |
默认 |
类型 |
描述 |
value |
是 |
|
String |
要包含的jsp或servlet |
• <s:param>
– 为其他标签提供参数,比如include标签和bean
名称 |
必需 |
默认 |
类型 |
描述 |
name |
否 |
|
String |
参数名 |
评论