set标签赋予变量一个特定范围内的值。当希望给一个变量赋一个复杂的表达式,每次访问该变量而不是复杂的表达式时用到。其在两种情况下非常有用: 复杂的表达式很耗时 (性能提升) 或者很难理解 (代码可读性提高)
<a href='<s:url value="/i18n.jsp" />'>i18n</a>
<br />
<s:url id="url" value="/condition.jsp">
<s:param name="name">Max</s:param>
</s:url>
<s:a href="%{url}">if\elseif\else</s:a>
<!-- 直接输出Session中的值,如以下代码输出用户ID--> 1. <s:property value="#attr.user.userID" /> 2. <s:set/> --- Set标签用户将某一值赋给某一变量,因此,任何对该项值的引用都可以通过该变量来得到该值. 使用: <s:set name="teacher" value="%{'数学高级教师'}"/> 教师职称:<s:property value="#teacher"/> 页面显示:教师职称:数学高级教师。
<s:if test="reviewer1 == 0"> 未分配评审员 </s:if> <s:elseif test="articleAuditID == 0"> <s:property value="reviewer1ID" />--未评审 </s:elseif> <s:else> <a href="<s:url action="articleAuditShow2"> <s:param name="id" value="articleAuditID"/></s:url>"> <s:property value="reviewer1ID" />--已评审</a> </s:else>
value的提供有两种方式,通过value属性或者标签中间的text,不同之处我们看一下例子:
<param name="color">blue</param><!-- (A) -->
<param name="color" value="blue"/><!-- (B) -->
(A)参数值会以String的格式放入statck.
(B)该值会以java.lang.Object的格式放入statck.
iterator 描述: 用于遍历集合(java.util.Collection)或枚举值(java.util.Iterator)。 参数: 名称 必需 类型 描述 status 否 String 如果设置此参数,一个IteratorStatus的实例将会压入每个遍历的堆栈 value 否 Object/String 要遍历的可枚举的(iteratable)数据源,或者将放入新列表(List)的对象 id 否 Object/String 用来标识元素的id。在UI和表单中为HTML的id属性 例子: <%@ page contentType="text/html; charset=UTF-8" %> <%@ page import="java.util.List" %> <%@ page import="java.util.ArrayList" %> <%@ taglib prefix="s" uri="/struts-tags" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <% List list = new ArrayList(); list.add("Max"); list.add("Scott"); list.add("Jeffry"); list.add("Joe"); list.add("Kelvin"); request.setAttribute("names", list); %> <html> <head> <title>Iterator</title> </head> <body> <h3>Names: </h3> <!-- 1、此处的空property元素用于获得当前iterator的值 2、status被设成stuts,在iterator的里面就可以通过#stuts取得IteratorStatus的对象。IteratorStatus类包含当前序号信息,如是否第一个或最后一个,是否为奇数序号。这些信息在我们做格式化的时候,显得非常有用。 --> <ol> <s:iterator value="#request.names" status="stuts"> <s:if test="#stuts.odd == true"> <li>White <s:property /></li> </s:if> <s:else> <li style="background-color:gray"><s:property /></li> </s:else> </s:iterator> </ol> </body> </html>