程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> Struts1.x系列教程(7):Logic標簽庫

Struts1.x系列教程(7):Logic標簽庫

編輯:關於JAVA

1.循環標簽:iterate標簽。用於枚舉數組、集合類型對象中的元素。

2.條件處理標簽:用於是否相等、比較大小等判斷。這類標簽有empty、equal 、greaterEqual、greaterThan、lessEqual、lessThan、match、messagesNotPresent、messagesPresent、notEmpty、notEqual、notMatch、notPresent、present。

3.流控制標簽:用於轉向其他的頁面。redirect和forward屬性這類標簽。

一、循環標簽(iterate)

<logic:iterate>標簽用於對數組以及集合類型對象中的元素進行枚舉。<logic:iterate>標簽在功能上和JSTL中的<c:forEach>標簽非常相似。<logic:iterate>標簽的常用屬性的意義和作用如下:

1.id:一個表示集合中的每一個元素的變量,被保存在page范圍中。

2.name:一個數組或集合對象名,或是一個包含有getter方法的JavaBean。

3.property:如果name是一個JavaBean,那麼property就是這個JavaBean的屬性名。<logic:iterate>標簽通過這個屬性名獲得要枚舉的數組或集合對象。

4.indexId:循環過程中的索引(從0開始),相當於Java中在for循環中使用變量i來獲得循環中每一項的索引。

5.offset:偏移量。也就是從數組或集合的第幾個元素開始枚舉。

6.length:從offset開始,要枚舉的元數的個數。

7.scope:name變量保存的范圍。如果不指定,<logic:iterate>標簽將搜索所有的范圍。也就是說,依次按著page、request、session和application進行搜索,如果在不同的范圍有同樣的變量名,以先搜索到的為准。

下面的例子演示了<logic:iterate>標簽的使用。在<samples工程目錄>目錄中建立一個iterate.jsp文件,代碼如下:

<%@ page  import="java.util.*" pageEncoding="GBK"%>
<%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic"%>
<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean"%>
<html>
<head>
<title>測試iterate標簽</title>
</head>
<body>
<%
String array[] = { "bill", "王明", "趙陽" };
pageContext.setAttribute("array", array);
List<String> list = new LinkedList<String>();
list.add("計算機");
list.add("英語");
pageContext.setAttribute("list", list);
pageContext.setAttribute("iterator", list.iterator());
Map<String, String> map = new HashMap<String, String>();
map.put("book", "書");
map.put("apple", "蘋果");
pageContext.setAttribute("keySet", map.keySet());
pageContext.setAttribute("entrySet", map.entrySet());
%>
<logic:iterate id="s" name="array" indexId="i" offset="1" length="1">
array[<bean:write name="i"/>] = <bean:write name="s"/>&nbsp;
</logic:iterate>
<br>
<jsp:useBean id="form" class="actionform.HtmlTagsForm"/>
<jsp:setProperty name="form" property="hobbies" value="<%= new String[]{"計算機","旅游","攝影"} %>"/>
<logic:iterate id="s" name="form" property="hobbies">
<bean:write name="s"/>&nbsp;
</logic:iterate>
<br>
<logic:iterate id="s" name="list" indexId="i">
list[<bean:write name="i"/>] = <bean:write name="s"/>&nbsp;
</logic:iterate>
<br>
<logic:iterate id="s" name="iterator" indexId="i" offset="1">
list[<bean:write name="i"/>] = <bean:write name="s"/>&nbsp;
</logic:iterate>
<br>
<logic:iterate id="entry" name="entrySet">
<bean:write name="entry" property="key"/> = <bean:write name="entry" property="value"/>&nbsp;
</logic:iterate>
</body>
</html>

在IE中輸入如下的URL測試iterate.jsp:

http://localhost:8080/samples/iterate.jsp

二、條件處理標簽

條件處理標簽可分為如下三類:

1.Test: present、notPresent、empty、notEmpty、 messagesPresent、messagesNotPresent

2.比較:equal, lessThan, lessEqual, greaterThan和greaterEqual

3.字符串匹配: match、notMatch

所有的條件處理標簽都有name和property屬性。分別用來指定對象名和屬性名。如下面的代碼演示了<logic:empty>和<logic:lessThan>標簽的使用:

<logic:empty name="var">
var為空
</logic:empty>
<logic:lessThan name="employee" property="age" value="18">
不符合工作年齡
</logic:lessThan>

三、流控制標簽(redirect和forward)

<logic:redirect>用於重定向到其他的Web資源。用法如下:

<logic:redirect href="http://www.sina.com.cn"/>

<logic:forward>標簽用於把當前的請求轉發給其他的靜態資源、JSP頁或Servlet。在功能和使用上和<jsp:forward>類似。

關於Logic標簽庫的更詳細的信息請讀者參閱Struts的官方網站,URL如下:

http://struts.apache.org/1.2.9/userGuide/struts-logic.html

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved