【Struts2复习知识点二十】 标签

一.property标签

View Code
<!-- 输出username元素 -->
<li>property: <s:property value="username"/> </li>
<!-- 输出字符串'username' -->
<li>property 取值为字符串: <s:property value="'username'"/> </li>
<!-- 找不到admin就赋值默认值 -->
<li>property 设定默认值: <s:property value="admin" default="管理员"/> </li>
<!-- escape设置是否将标签以文本形式输出 -->
<li>property 设定HTML: <s:property value="'<hr/>'" escape="false"/> </li>


二.set标签

View Code
<li>set 设定adminName值(默认为request 和 ActionContext): <s:set var="adminName" value="username" /></li>

<li>set 从request取值: <s:property value="#request.adminName" /></li>
<li>set 从ActionContext取值: <s:property value="#adminName" /></li>

<%--<li>set 设定范围: <s:set name="adminPassword" value="password" scope="page"/></li>
<li>set 从相应范围取值: <%=pageContext.getAttribute("adminPassword") %></li>
--%>
<li>set 设定var,范围为ActionContext: <s:set var="adminPassword" value="password" scope="session"/></li>
<li>set 使用#取值: <s:property value="#adminPassword"/> </li>
<li>set 从相应范围取值: <s:property value="#session.adminPassword"/> </li>

上述例子为先设置值,再从中取值。主要是查看<s:debug>

三.bean标签

View Code
<li>bean 定义bean,并使用param来设定新的属性值:
<s:bean name="com.bjsxt.struts2.tags.Dog" >
<s:param name="name" value="'pp'"></s:param>
<s:property value="name"/>

</s:bean>


</li>

<li>bean 查看debug情况:
<s:bean name="com.bjsxt.struts2.tags.Dog" var="myDog">
<s:param name="name" value="'oudy'"></s:param>
</s:bean>
拿出值:
<s:property value="#myDog.name"/>

</li>

include标签

View Code
<li>include _include1.html 包含静态英文文件
<s:include value="/_include1.html"></s:include>
</li>

<li>include _include2.html 包含静态中文文件
<s:include value="/_include2.html"></s:include>
</li>

<li>include _include1.html 包含静态英文文件,说明%用法
<s:set var="incPage" value="%{'/_include1.html'}" />
<s:include value="%{#incPage}"></s:include>
</li>

%是说把{}中的内容当成OGNL表达式。

$ # %的区别

a)         $用于i18n和struts配置文件

b)         #取得ActionContext的值

c)         %将原本的文本属性解析为ognl,对于本来就是ognl的属性不起作用

 

if标签

View Code
<li>if elseif else: 
age = <s:property value="#parameters.age[0]" /> <br />
<s:set var="age" value="#parameters.age[0]" />
<s:if test="#age < 0">wrong age!</s:if>
<s:elseif test="#parameters.age[0] < 20">too young!</s:elseif>
<s:else>yeah!</s:else><br />

<s:if test="#parameters.aaa == null">null</s:if>
</li>

itreator标签

View Code
<li>遍历集合:<br />
<s:iterator value="{1, 2, 3}" >
<s:property/> |
</s:iterator>
</li>
<li>自定义变量:<br />
<s:iterator value="{'aaa', 'bbb', 'ccc'}" var="x">
<!-- 调用字符串转大写方法 -->
<s:property value="#x.toUpperCase()"/> |
</s:iterator>
</li>
<li>使用status:<br />
<!-- 定义状态 -->
<s:iterator value="{'aaa', 'bbb', 'ccc'}" status="status">
<!-- 循环取出元素 -->
<s:property/> |
遍历过的元素总数:<s:property value="#status.count"/> |
遍历过的元素索引:<s:property value="#status.index"/> |
当前是偶数?:<s:property value="#status.even"/> |
当前是奇数?:<s:property value="#status.odd"/> |
是第一个元素吗?:<s:property value="#status.first"/> |
是最后一个元素吗?:<s:property value="#status.last"/>
<br />
</s:iterator>

</li>

<li>
<!-- 遍历map,定义map的时候需要加# -->
<s:iterator value="#{1:'a', 2:'b', 3:'c'}" >
<s:property value="key"/> | <s:property value="value"/> <br />
</s:iterator>
</li>

<li>
<s:iterator value="#{1:'a', 2:'b', 3:'c'}" var="x">
<s:property value="#x.key"/> | <s:property value="#x.value"/> <br />
</s:iterator>
</li>





 

原文地址:https://www.cnblogs.com/surge/p/2365273.html