勿谓今日不学而有来日,勿谓今年不学而有来年。
日月逝矣,岁不我延。

Struts2常用通用标签

【本文所涉及到的示例源码存放在我的GitHub:https://github.com/llanc/SSH_Learn/tree/master/Struts2-learn-5-Tags

 

<s:property />

作用:

用来输出一个值栈属性的值

示例:

  1. 输出 Action 属性 customerId 的值: <s:property value=“customerId”/>
  2. 输出 session 属性 userName 的值: <s:property value=“#session.userName”/>

注意:

  • 如果 value 属性没有给出, ValueStack 值栈栈顶对象的值被输出
  • 在许多情况下, JSP EL 可以提供更简洁的语法

 

<url />

作用:

用来动态地创建一个 URL

示例:

 静态:<s:url value="/url-tag-test" var="url"/>
${url }
<br>
带静态参数:<s:url value="/url-tag-test" var="url01">
			<s:param name="id" value="01" />
		</s:url>
		${url01 }
<br>
带动态参数(值栈商品对象的价格,自动进行OGNL解析,无需解析是加单引号):
<s:url value="/url-tag-test" var="url02">
	<s:param name="price" value="price" />
	<s:param name="name" value="'name'"/>
</s:url>
${url02 }
<br>
构建请求action url:
<s:url action="action-url" namespace="/ActionUrlTest" method="execuet" var="url03">
	<s:param name="price" value="price" />
	<s:param name="name" value="'name'"/>
</s:url>
${url03 }
<br>
包含请求参数(get--include=get/post&get--include=all):
<s:url value="/url-tag-test" var="url04" includeParams="get">
</s:url>
${url04 }

 

<s:param />

作用:

用来把一个参数传递给包含着它的那个标签

注意:

  • 无论在给出value值时有没有使用%{}, Struts 都会对它进行ognl 求值
  • 如果想传递一个String类型的字符串作为参数值,必须把它用单引号括起来.
  • 可以把value属性的值写在开始标签和结束标签之间. 利用这种方式来传递一个 EL 表达式的值

 

<s:set />

作用:

在以下Map 对象里创建一个键值对:

  • ValueStack 值栈的ContextMap 值栈
  • Map 类型的session 对象
  • Map 类型的application 对象
  • Map 类型的request 对象
  • Map 类型的page 对象

示例:

<s:set name=”setTagTest” value=”‘yes'” scope=”session”></s:set>

 

<s:push value=”” />

作用:

把一个对象压入ValueStack而不是压入ContextMap。

示例:

<%
	Product product2=new Product("PustTset",1002);
	request.setAttribute("pustTest", product2);
%>
<s:push value="#request.pustTest" >
push标签内获取属性值:${name }---${price }
</s:push>
<br>
push标签外获取属性值:${name }---${price }
<br>

注意:

push 标签在标签起始时把一个对象压入栈, 标签结束时将对象弹出栈.

 

<s:if test=”” />、<s:else />和<s:elseif test=”” />

作用:

用来进行条件测试, 它们的用途和用法类似于 if, else 和 elseif 关键字.

示例:

<s:if test="price<1000">
	低于1000价格实惠
</s:if>
<s:elseif test="price>1000">
	高于1000价格太高
</s:elseif>
<s:else>价格是1002</s:else>
<br>
<s:if test="#request.pustTest.getPrice()>1001">
	价格大于1001价格是:${requestScope.pustTest.price }
</s:if>

注意:

if和else必须有test属性!

 

<s:iterator />

作用:

用来遍历一个数组, Collection 或一个 Map, 并把这个可遍历对象里的每一个元素依次压入和弹出 ValueStack 栈。

  • status属性值如下:

示例:

<%
	List<Product> product3=new ArrayList<Product>();
	product3.add(new Product("iterator01",101));
	product3.add(new Product("iterator03",102));
	product3.add(new Product("iterator04",103));
	product3.add(new Product("iterator05",104));
	product3.add(new Product("iterator02",105));
	session.setAttribute("iteratorTagTest", product3);
%>
<s:iterator value="#session.iteratorTagTest" status="status">
index:${status.index}--count:${status.count}-----${name }---${price }<br>
</s:iterator>

注意:

  • 在开始执行时, iterator 标签会先把 IteratorStatus 类的一个实例压入 ContextMap, 并在每次遍历循环时更新它.
  • 可以将一个指向 IteratorStatus 对象的变量赋给 status 属性.

 

<s:sort comparator=”” />

作用:

对一个可遍历对象里的元素进行排序

示例:

<%
	List<Product> scorProduct=new ArrayList<Product>();
	scorProduct.add(new Product("sort01",101));
	scorProduct.add(new Product("sort03",102));
	scorProduct.add(new Product("sort04",103));
	scorProduct.add(new Product("sort05",104));
	scorProduct.add(new Product("sort02",105));
	session.setAttribute("ScorProduct", scorProduct);
	/*比较器 */
	ProductComparator comparator=new ProductComparator();
	request.setAttribute("productComparator", comparator);
%>
<s:sort comparator="#request.productComparator" source="#attr.ScorProduct" var="SortTagTest">
	<s:iterator value="#attr.SortTagTest">
		${name }--${price }<br>
	</s:iterator>
</s:sort>

<s:date  name=”” />

作用:

用来对 Date 对象进行格式化控制。

示例:

<%
	session.setAttribute("newDate", new Date() );
%>
date标签:对Date对象进行格式化控制
<s:date name="#session.newDate"  format="yyyy-MM-dd hh:mm:ss" var="newDate"/>
${newDate }

注意:

  • format 属性的值必须是 java.text.SimpleDateFormat 类里定义的日期/时间格式之一。

 

<s:a href=”” />

作用:

呈现为一个 HTML 连接. 这个标签可以接受 HTML 语言中的 a 元素所能接受的所有属性.

示例:

<!-- ScorProduct为上面scor标签示例隆中的集合 -->
<s:iterator value="#attr.ScorProduct">
	<!-- 使用%{ }将进行强制OGNL解析 -->
	<s:a href="getProductName?name=%{name}">${name }</s:a>
</s:iterator>

 

<s:action  name=”” />

作用:

  • 在页面上来执行一个 action。
  • 把当前 Action 对象压入 ValueStack 值栈的 ContextMap 子栈.

 

<s:bean name=”” />

作用:

创建一个 JavaBean, 并把它压入 ValueStack 值栈的 ContextMap 子栈. 这个标签的功能与 JSP 中的 useBean 动作元素很相似

 

<s:include value=”” />

作用:

把一个 Servlet 或 JSP 页面的输出包含到当前页面里来.

 

<s:append />和<s:merge />

作用:

  • append 标签用来合并可遍历对象.
  • merge 标签用来交替合并可遍历对象

示例:

 

<s:generator separator=”” val=”” />

作用:

用来生成一个可遍历对象并把它压入 ValueStack 栈.

示例:

注意:

  • generator 标签结束标记将弹出遍历对象
  • 如果在一个 generator 标签里给出了 converter 属性, 新生成的可遍历对象里的每一个元素都会传递到该属性所指定的方法进行必要的转换

 

<s:subset />

作用:

通过 decider 属性来创建一个可遍历集合的子集

示例:

 

【本文所涉及到的示例源码存放在我的GitHub:https://github.com/llanc/SSH_Learn/tree/master/Struts2-learn-5-Tags

赞(1)
未经允许不得转载:喋喋不休 » Struts2常用通用标签

评论 抢沙发

评论前必须登录!

 

精品网站

有券无忧电脑壁纸精选