struts2 標簽學(xué)習(xí)
用過struts1.x的人都知道,標簽庫有html、bean、logic、tiles,
而struts2.0里的標簽卻沒有分類,只用在jsp頭文件加上
<%@ taglib prefix="s" uri="/struts-tags" %>
就能使用struts2.0的標簽庫
下面就介紹下每個標簽的用法(有錯請指正):
A:
<s:action name=""></s:action>-----執(zhí)行一個view里面的一個action
<s:actionerror/>-----如果action的errors有值那么顯示出來
<s:actionmessage/>-----如果action的message有值那么顯示出來
<s:append></s:append>-----添加一個值到list,類似于list.add();
<s:autocompleter></s:autocompleter>-----自動完成<s:combobox>標簽的內(nèi)容,這個是ajax
B:
<s:bean name=""></s:bean>-----類似于struts1.x中的,JavaBean的值
C:
<s:checkbox></s:checkbox>-----復(fù)選框
<s:checkboxlist list=""></s:checkboxlist>-----多選框
<s:combobox list=""></s:combobox>-----下拉框
<s:component></s:component>-----圖像符號
D:
<s:date/>-----獲取日期格式
<s:datetimepicker></s:datetimepicker>-----日期輸入框
<s:debug></s:debug>-----顯示錯誤信息
<s:div></s:div>-----表示一個塊,類似于html的<div></div>
<s:doubleselect list="" doubleName="" doubleList=""></s:doubleselect>-----雙下拉框
E:
<s:if test=""></s:if>
<s:elseif test=""></s:elseif>
<s:else></s:else>-----這3個標簽一起使用,表示條件判斷
F:
<s:fielderror></s:fielderror>-----顯示文件錯誤信息
<s:file></s:file>-----文件上傳
<s:form action=""></s:form>-----獲取相應(yīng)form的值
G:
<s:generator separator="" val=""></s:generator>----和<s:iterator>標簽一起使用
H:
<s:head/>-----在<head></head>里使用,表示頭文件結(jié)束
<s:hidden></s:hidden>-----隱藏值
I:
<s:i18n name=""></s:i18n>-----加載資源包到值堆棧
<s:include value=""></s:include>-----包含一個輸出,servlet或jsp頁面
<s:inputtransferselect list=""></s:inputtransferselect>-----獲取form的一個輸入
<s:iterator></s:iterator>-----用于遍歷集合
L:
<s:label></s:label>-----只讀的標簽
M:
<s:merge></s:merge>-----合并遍歷集合出來的值
O:
<s:optgroup></s:optgroup>-----獲取標簽組
<s:optiontransferselect doubleList="" list="" doubleName=""></s:optiontransferselect>-----左右選擇框
P:
<s:param></s:param>-----為其他標簽提供參數(shù)
<s:password></s:password>-----密碼輸入框
<s:property/>-----得到'value'的屬性
<s:push value=""></s:push>-----value的值push到棧中,從而使property標簽的能夠獲取value的屬性
R:
<s:radio list=""></s:radio>-----單選按鈕
<s:reset></s:reset>-----重置按鈕
S:
<s:select list=""></s:select>-----單選框
<s:set name=""></s:set>-----賦予變量一個特定范圍內(nèi)的值
<s:sort comparator=""></s:sort>-----通過屬性給list分類
<s:submit></s:submit>-----提交按鈕
<s:subset></s:subset>-----為遍歷集合輸出子集
T:
<s:tabbedPanel id=""></s:tabbedPanel>-----表格框
<s:table></s:table>-----表格
<s:text name=""></s:text>-----I18n文本信息
<s:textarea></s:textarea>-----文本域輸入框
<s:textfield></s:textfield>-----文本輸入框
<s:token></s:token>-----攔截器
<s:tree></s:tree>-----樹
<s:treenode label=""></s:treenode>-----樹的結(jié)構(gòu)
U:
<s:updownselect list=""></s:updownselect>-----多選擇框
<s:url></s:url>-----創(chuàng)建url
Struts2.0標簽大體可分為以下幾類:
1.UI(User Interface,用戶界面)標簽:主要生成HTML元素標簽;
(1)表單標簽:用于生成HTML頁面的form元素,以及普通表單元素的標簽。
(2)非表單標簽:用于生成頁面上的樹、Tab也等標簽。
2.非UI標簽:主要用于數(shù)據(jù)訪問、邏輯控制等的標簽;
(1)流程控制標簽:主要包含用于實現(xiàn)分支、循環(huán)等流程控制的標簽。
(2)數(shù)據(jù)訪問標簽:主要包含與輸出ValueStack中的值,完成國際化等功能的標簽。
3.Ajax標簽:用于Ajax支持的標簽;
一、使用Struts2標簽庫的準備
在工程中加入Struts2的Jar文件。
修改Web.xml文件如:
1
<?xml version="1.0" encoding="UTF-8"?>
2
<web-app version="2.4"
3
xmlns="http://java.sun.com/xml/ns/j2ee"
4
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
5
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
6
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
7
<filter>
8
<filter-name>struts2</filter-name>
9
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
10
</filter>
11
<filter-mapping>
12
<filter-name>struts2</filter-name>
13
<url-pattern>/*</url-pattern>
14
</filter-mapping>
15
</web-app>
二、在使用標簽時別忘了用taglib編譯指令導(dǎo)入Struts2的標簽庫定義
2

3

4

5

6

7

8

9

10

11

12

13

14

15

1
<%="s" uri="/struts-tags" %>
三、下面我就開始探討一下Struts2.0標簽庫控制標簽的使用。
1.if/elseif/else標簽
1
<%@ page language="java" pageEncoding="ISO-8859-1"%>
2
<%@ taglib prefix="s" uri="/struts-tags" %>
3
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
4
<html>
5
<head>
6
<title>If_Else</title>
7
</head>
8
<body>
9
<s:set name="name" value="#parameters.name[0]"></s:set>
10
<s:if test="#name=='woailuo'">
11
woailuo is here!
12
</s:if>
13
<s:elseif test="#name=='mingren'">
14
mingren is here!
15
</s:elseif>
16
<s:else>
17
zuozhu is here!
18
</s:else>
19
</body>
20
</html>
2.Iterator標簽
2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

Iterator主要對集合進行迭代,包括List、Set、Map;它的屬性有3個:
(1)value:可選屬性,value指定被迭代的集合,被迭代的集合通常用OGNL表達式指定。如沒有value屬性,則使用ValueStatus棧頂?shù)募稀?br /> (2)id:可選屬性,指定集合中的元素的ID。
(3)status:可選屬性,給屬性指定迭代的IteratorStatus實力,該實例包含幾個方法:int getCount()返回當前迭代了幾個元素;int getIndex()返回當前迭代元素的索引;Boolean isEven()返回當前迭代的元素是否是偶數(shù);boolean isOdd()返回是否是奇數(shù);boolean isFirst()是否是第一個元素;boolean isLast()是否是最后一個。
1<%@ page language="java" pageEncoding="utf-8"%>
2<%@ taglib prefix="s" uri="/struts-tags" %>
3
<html>
4
<head>
5
<title>iterator</title>
6
</head>
7
<body>
8
<table border="1" width=100>
9
<s:iterator value="{'struts2.0','hibernate','ajax','spring'}" id="name" status="st">
10
<tr <s:if test="#st.odd">style="background-color:#bbbbbb"</s:if>>
11
<td><s:property value="#st.count"/><s:property value="name"/></td>
12
</tr>
13
</s:iterator>
14
</table>
15
</body>
16
</html>
3.append標簽2<%@ taglib prefix="s" uri="/struts-tags" %>
3

4

5

6

7

8

9

10

11

12

13

14

15

16

append標簽用于將多個集合對象拼接起來,組合一個新的集合。從而通過一個<s:iterator.../>完成對多個集合的迭代。
1
<%@ page language="java" pageEncoding="utf-8"%>
2
<%@ taglib prefix="s" uri="/struts-tags" %>
3
<html>
4
<head>
5
<title>iterator</title>
6
</head>
7
<body>
8
<table border="1" width="100">
9
<s:append id="newList">
10
<s:param value="{'struts2.0','hibernate','ajax','spring'}"/>
11
<s:param value="{'javaScript','sql server'}"/>
12
</s:append>
13
<s:iterator value="#newList" status="st">
14
<tr <s:if test="#st.odd">style="background-color:#bbbbbb"</s:if>>
15
<td><s:property value="#st.count"/><s:property/></td>
16
</tr>
17
</s:iterator>
18
</table>
19
</body>
20
</html>
21
4.merge標簽
2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

merge標簽與append標簽非常相似,他們都是將多個集合拼接成一個。他們的區(qū)別在于拼接后集合元素的順序不同。
append方式拼接,新元素的順序為:
(1)第一個集合中的第一個元素;
(2)第一個集合中的第二個元素;
(3)第二個集合中的第一個元素;
(4)第二個集合中的第二個元素;
merge方式拼接,新元素的順序為:
(1)第一個集合中的第一個元素;
(2)第二個集合中的第一個元素;
(3)第一個集合中的第二個元素;
(4)第二個集合中的第二個元素;
5.subset標簽
subset標簽用于取得集合的子集,它的屬性有如下:
(1)count:可選屬性,指定子集中元素的個數(shù),默認取得全部;
(2)source:可選屬性,指定源集合,默認取得ValueStack棧頂?shù)募希?br /> (3)start:可選屬性,指定子集從源集合第幾個開始截取,默認從第一個截取(start為0);
(4)decider:可選屬性,是否選中該屬性;
1
<%@ page language="java" pageEncoding="utf-8"%>
2
<%@ taglib prefix="s" uri="/struts-tags"%>
3
<html>
4
<head>
5
<title>iterator</title>
6
</head>
7
<body>
8
<table border="1" width="100">
9
<s:subset
10
source="{'struts2.0','hibernate','ajax','spring','javaScript'}"
11
count="3" start="1" id="subset">
12
<s:iterator status="st">
13
<tr <s:if test="#st.odd">style="background-color:#bbbbbb"</s:if>>
14
<td>
15
<s:property value="#st.count" />
16
<s:property/>
17
</td>
18
</tr>
19
</s:iterator>
20
</s:subset>
21
</table>
22
</body>
23
</html>
24
6.關(guān)于控制標簽還有g(shù)enerator標簽和sort標簽
2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

他們的作用分別是:generator是將指定的字符串按指定的分隔符分隔成多個子串;sort是對指定的集合元素進行排序必須提供自己的排序規(guī)則。
因為這兩個用到的比較少,所以就不羅嗦了。
posted on 2009-02-14 21:05 草原上的駱駝 閱讀(4864) 評論(3) 編輯 收藏 所屬分類: JAVA框架