struts2.0學(xué)習(xí)筆記(一)--常用非UI標(biāo)記
Posted on 2008-08-16 23:12 ∪∩BUG 閱讀(1170) 評(píng)論(1) 編輯 收藏 所屬分類(lèi): Struts2學(xué)習(xí)筆記 1
<%@ page contentType="text/html; charset=UTF-8"%>
2
<%@ taglib prefix="s" uri="/struts-tags"%>
3
4
<!--
5
Struts2非UI標(biāo)簽if、elseif和else 的使用:執(zhí)行基本的條件流轉(zhuǎn)。
6
-->
7
8
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
9
<html>
10
<head>
11
<title>Condition Flow</title>
12
</head>
13
<body>
14
<h3>
15
Condition Flow
16
</h3>
17
18
<!-- 注意"'" + request.getParameter("name") + "'"這里的單引號(hào) -->
19
<!-- s:if test="#name == 'Max'" 判斷取出name的值是否與Max相等,#表示取出值 -->
20
<s:set name="name"
21
value="#parameters.name[0]" />
22
23
<s:if test="#name == 'Max'">
24
Max's file here
25
</s:if>
26
<s:elseif test="#name == 'Scott'">
27
Scott's file here
28
</s:elseif>
29
<s:else>
30
Other's file here
31
</s:else>
32
</body>
33
</html>
34
<!--
35
這里有點(diǎn)小技巧:
36
本來(lái)可以用#parameters.name[0]來(lái)獲得,請(qǐng)求中name的值。但是,在我實(shí)現(xiàn)include例子時(shí),
37
無(wú)論我用param標(biāo)志給name賦任何值,#parameters里面不會(huì)含有任何值,所以#parameters.name也為空值。
38
39
其原因?yàn)椋?br />
40
當(dāng)使用include標(biāo)志時(shí),被包含的頁(yè)面(included)里#parameters拿到的是包含頁(yè)面里的請(qǐng)求參數(shù)。
41
42
因此,這里必須手工調(diào)用request.getParameter("name")。
43
-->
44

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39


41

42

43

44

1
<%@ page contentType="text/html; charset=UTF-8"%>
2
<%@ page import="java.util.List"%>
3
<%@ page import="java.util.ArrayList"%>
4
<%@ taglib prefix="s" uri="/struts-tags"%>
5
6
<!--
7
Struts2非UI標(biāo)簽iterator的使用:用于遍歷集合(java.util.Collection)或枚舉值(java.util.Iterator)。
8
Struts2非UI標(biāo)簽property的使用:得到'value'的屬性,如果value沒(méi)提供,默認(rèn)為堆棧頂端的元素。
9
-->
10
11
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
12
<%
13
List list = new ArrayList();
14
list.add("Max");
15
list.add("Scott");
16
list.add("Jeffry");
17
list.add("Joe");
18
list.add("Kelvin");
19
request.setAttribute("names", list); //把參數(shù)names的值設(shè)為list對(duì)象的值.
20
%>
21
<html>
22
<head>
23
<title>Iterator</title>
24
</head>
25
<body>
26
<h3>
27
Names:
28
</h3>
29
<!--
30
1、此處的空property元素用于獲得當(dāng)前iterator的值
31
2、status被設(shè)成stuts,在iterator的里面就可以通過(guò)#stuts取得IteratorStatus的對(duì)象。
32
IteratorStatus類(lèi)包含當(dāng)前序號(hào)信息,如是否第一個(gè)或最后一個(gè),是否為奇數(shù)序號(hào)。
33
這些信息在我們做格式化的時(shí)候,顯得非常有用。
34
3.把EL表達(dá)式 #request.names 也就是集合list的值存到stuts里,再通過(guò)#stuts.odd判斷是否是奇數(shù),
35
如果是奇數(shù)通過(guò)<s:property />取得stuts(集合list)的第一個(gè)值,否則再把背景顏色設(shè)置為red然后再輸出結(jié)果.
36
-->
37
<ol>
38
<s:iterator value="#request.names" status="stuts">
39
<s:if test="#stuts.odd == true">
40
<li>
41
White
42
<s:property />
43
</li>
44
</s:if>
45
<s:else>
46
<li style="background-color: red">
47
<s:property />
48
</li>
49
</s:else>
50
</s:iterator>
51
</ol>
52
</body>
53
</html>

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

1
<%@ page contentType="text/html; charset=UTF-8"%>
2
<%@ taglib prefix="s" uri="/struts-tags"%>
3
4
<!--
5
Struts2非UI標(biāo)簽i18n的使用:加載資源包到值堆棧。它可以允許text標(biāo)志訪問(wèn)任何資源包的信息,而不只當(dāng)前action相關(guān)聯(lián)的資源包。
6
-->
7
8
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
9
<html>
10
<head>
11
<title>Internationization</title>
12
</head>
13
<body>
14
<h3>
15
<!--
16
1.s:i18n name="ApplicationMessages"裝載屬性頁(yè)面
17
2.s:text name="HelloLab" 找到屬性中對(duì)應(yīng)的HelloLab然后在頁(yè)面中顯示HelloLab的值
18
-->
19
<s:i18n name="ApplicationMessages">
20
<s:text name="HelloLab" />
21
</s:i18n>
22
</h3>
23
</body>
24
</html>

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

1
<%@ page contentType="text/html; charset=UTF-8"%>
2
<%@ taglib prefix="s" uri="/struts-tags"%>
3
4
<!--
5
Struts2非UI標(biāo)簽include的使用:動(dòng)態(tài)包含一個(gè)servlet的輸出(servlet或jsp的頁(yè)面)。
6
-->
7
8
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
9
<html>
10
<head>
11
<title>Iterator</title>
12
</head>
13
<body>
14
<h3>
15
Interator Page
16
</h3>
17
<!--
18
在包含頁(yè)面中傳遞參數(shù),使用param標(biāo)記,指定參數(shù)的名稱(chēng)及對(duì)應(yīng)參數(shù)值,類(lèi)似JSP頁(yè)面中的include命令.
19
1.s:include value="/condition.jsp"包含一個(gè)絕對(duì)路徑,其中包含參數(shù)<s:param name="name">Max</s:param>以顯示有關(guān)MaxR的結(jié)果
20
2.s:include value="/i18n.jsp" 包含一個(gè)絕對(duì)路徑,沒(méi)有再包含參數(shù).
21
-->
22
<s:include value="/condition.jsp">
23
<s:param name="name">Max</s:param>
24
</s:include>
25
<h3>
26
i18n
27
</h3>
28
<s:include value="/i18n.jsp" />
29
<h1>這里是之后顯示的內(nèi)容,純屬于本頁(yè)面!</h1>
30
</body>
31
<!--
32
value的提供有兩種方式,通過(guò)value屬性或者標(biāo)簽中間的text,不同之處我們看一下例子:
33
34
<param name="color">blue</param>(A)
35
36
<param name="color" value="blue"/> (B)
37
(A)參數(shù)值會(huì)以String的格式放入statck.
38
(B)該值會(huì)以java.lang.Object的格式放入statck.
39
-->
40
</html>
41

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

1
<%@ page contentType="text/html; charset=UTF-8"%>
2
<%@ taglib prefix="s" uri="/struts-tags"%>
3
4
<!--
5
Struts2非UI標(biāo)簽url的使用:加載資源包到值堆棧。它可以允許text標(biāo)志訪問(wèn)任何資源包的信息,而不只當(dāng)前action相關(guān)聯(lián)的資源包。
6
-->
7
8
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
9
<html>
10
<head>
11
<title>URL</title>
12
</head>
13
<body>
14
<h3>
15
URL
16
</h3>
17
<!--
18
1.<a href='<s:url value="/i18n.jsp" />'>i18n</a>表示靜態(tài)鏈接,
19
<s:url value="/i18n.jsp" />定義指向url的地址,value值為相對(duì)地址路徑.
20
可以嵌套param標(biāo)記,向指定的url傳遞參數(shù),該標(biāo)記的值不能單獨(dú)使用,必須配合相關(guān)的頁(yè)面標(biāo)記使用
21
<s:a href="%{url}">或<a href='<s:url value="/i18n.jsp" />'>i18n</a>
22
(調(diào)用id為url(指向"/condition.jsp")的url頁(yè)面.)
23
24
2. <s:url id="url" value="/condition.jsp">
25
<s:param name="name">Max</s:param>
26
</s:url>
27
相關(guān)于http://
../condition.jsp?name=Max
28
29
-->
30
<a href='<s:url value="/i18n.jsp" />'>i18n</a>
31
<br />
32
<s:url id="url" value="/condition.jsp">
33
<s:param name="name">Max</s:param>
34
</s:url>
35
<s:a href="%{url}">if\elseif\else</s:a>
36
</body>
37
</html>

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27



28

29

30

31

32

33

34

35

36

37
