property标签
property标签用于输出指定值:
<s:property value=“#name" default="a default value" />
* default:可选属性, 如果需要输出的属性值为null,则显示该属性指定的值
* escape:可选属性,指定是否格式化HTML代码。 escape=“false”时,hr作为html标签使用
* value: 可选属性,指定需要输出的属性值,如果没有指定该属性,则默认输
出ValueStack栈顶的值。
例子:
<s:property value="#request.username"/>:输出栈顶的值
输出: username=username_valueStack, msgxx=msg_valueStack
<s:property value="#request.username111"default="default value"/>
<s:propertyvalue="%{'<hr>hr的使用'}" escape="false" />
输出:<hr> hr的使用
注:escape=“false”时,hr作为html标签使用
set标签
set标签用于将某个值放入指定范围。
var:变量的名字,name,id和var表达的含义是一样的,name,id被var替代
scope:指定变量被放置的范围,该属性可以接受application、session、request、 page或
action。如果没有设置该属性,则默认放置在action中。
value:赋给变量的值.如果没有设置该属性,则将ValueStack栈顶的值赋给变量。
例子:
<s:set value="#request.username" var="xxx“ scope=“request”/><br>
<s:propertyvalue=“#request.xxx"/><br>
<s:set value="#request.username" var="xxx" scope="page"/><br>
<s:propertyvalue="#attr.xxx"/><br>
<s:set value="#request.username" var="xxx" /><br>
<s:propertyvalue="xxx" /><br>
push标签
push:将对象放入栈顶,不能放入其他范围,当标签结束,会从栈顶删除。
value:要push到堆栈中的值。
例子:
<s:pushvalue="#request.username">
<s:property/>
</s:push>
<br>
测试删除: <s:property/>
bean标签(了解)
bean标签:实例化一个符合JavaBeans规范的class,标签体内可以包含几个Param元素,
用于调用setter方法给此class的属性赋值.
name:要被实例化的class名字(必须符合JavaBeans规范)
var: 赋给变量的值.放置在request作用域中
如果没有设置该属性,则对象被放置到栈顶
例子:
<s:bean name="cn.itcast.bean.Person"var="myperson">
<s:param name="name"value="%{'zhang'}"></s:param>
<s:param name="age"value="34"></s:param>
</s:bean><br>
<s:propertyvalue="#myperson.name"/>
action标签
Action:通过指定命名空间和action名称,该标签允许在jsp页面直接调用Action
name:action名字(不包括后缀,如.action)
namespace:action所在命名空间
executeResult:Action的result是否需要被执行,默认值是false不执行
例子:
<packagename="ognl" namespace="/ognl"extends="struts-default" >
<action name="ognlAction_*"class="cn.itcast.ognl.OgnlAction"method="{1}">
<result name="ognl">/ognl/ongl.jsp?msg=${msgxx}</result>
</action>
</package>
<s:actionname="ognlAction_test"namespace="/ognl"executeResult="true"/>
iterator标签
Iterator:标签用于对集合进行迭代,这里的集合包含List、Set和数组。
value:可选属性,指定被迭代的集合,如果没有设置该属性,则使用ValueStack栈顶的集合。
var: 可选属性,引用变量的名称.
status:可选属性,该属性指定迭代时的IteratorStatus实例。该实例包含如下几个方法:
intgetCount(),返回当前迭代了几个元素。
intgetIndex(),返回当前迭代元素的索引。
booleanisEven(),返回当前被迭代元素的索引是否是偶数
booleanisOdd(),返回当前被迭代元素的索引是否是奇数
booleanisFirst(),返回当前被迭代元素是否是第一个元素。
booleanisLast(),返回当前被迭代元素是否是最后一个元素。
<s:iteratorvalue="%{#request.persons}"var="person">
<s:property value="#person"/><br>
</s:iterator>
<s:iteratorvalue="%{#request.persons}"var="person">
<s:propertyvalue="#person.id"/>~<s:propertyvalue="#person.name"/>~<s:property value="#person.age"/>
</s:iterator>
<style type="text/css"
.odd{
background-color: red;
.even{
background-color:blue;}
</style>
<s:iteratorvalue="%{#request.persons}" var="person"status="st">
返回当前迭代了几个元素. <s:propertyvalue="#st.count"/><br>
返回当前迭代元素的索引.<s:propertyvalue="#st.index"/><br>
返回当前被迭代元素的索引是否是偶数.<s:propertyvalue="#st.even"/><br>
返回当前被迭代元素的索引是否是奇数.<s:propertyvalue="#st.odd"/><br>
返回当前被迭代元素是否是第一个元素.<s:propertyvalue="#st.first"/><br>
返回当前被迭代元素是否是最后一个元素.<s:propertyvalue="#st.last"/><br><br>
</s:iterator>
<tableborder="1">
<s:iteratorvalue="%{#request.persons}" var="person"status="st">
<tr class="<s:propertyvalue="#st.even?'evenClass':'oddClass'"/>">
<td><s:propertyvalue="#person.id"/></td>
<td><s:propertyvalue="#person.name"/></td>
<td><s:propertyvalue="#person.age"/></td>
</tr>
</s:iterator>
</table>
if/elseif/else标签
if/elseif/else 基本的流程控制.‘If’标签可单独使用也可以和‘Else If’标签和(或)一个多个‘Else’一起使用
<s:if test="#age==23">
23
</s:if>
<s:elseif test="#age==21">
21
</s:elseif>
<s:else>
都不等
</s:else>
<tableborder="1">
<s:iterator value="%{#request.persons}"var="person"status="st">
<tr class="<s:propertyvalue="#st.even?'evenClass':'oddClass'"/>">
<td><s:propertyvalue="#person.id"/></td>
<td><s:propertyvalue="#person.name"/></td>
<td><s:propertyvalue="#person.age"/></td>
<td><s:iftest="#person.age<24">少年</s:if>
<s:elseif test="#person.age<26">中年</s:elseif>
<s:else>老年</s:else></td>
</tr>
</s:iterator>
</table>
url标签
url:该标签用于创建url,可以通过"param"标签提供request参数.
value:如果不提供就用当前action,使用value后缀必须加.action
action:用来生成url的action,如果没有则使用value
namespace :命名空间
var:引用变量的名称.
使用action<br>
<s:urlaction="ognlTagAction_test"namespace="/ognl"var="myurl">
<s:param name="name" value="%{'张老师'}"></s:param>
<s:param name="id"value="12"></s:param>
</s:url>
<a href='<s:property value="#myurl"/>' >xxxx</a><br>
<a href='<s:property value="%{#myurl}"/>' >xxxx</a><br>
使用value<br>
<s:urlvalue="ognlTagAction_test.action"namespace="/ognl"var="myurl">
<s:param name="id"value="12"></s:param>
<s:param name="cnname"value="%{'zhang'}"></s:param>
</s:url>
<a href='<s:property value="#myurl"/>' >xxxx</a><br>
ognl操作集合