1
<%@ page contentType="text/html; charset=UTF-8"%>
2
<%@ taglib prefix="s" uri="/struts-tags"%>
3
4
<!--
5
Struts2非UI標簽if、elseif和else 的使用:執行基本的條件流轉。
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") + "'"這里的單引號 -->
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
這里有點小技巧:
36
本來可以用#parameters.name[0]來獲得,請求中name的值。但是,在我實現include例子時,
37
無論我用param標志給name賦任何值,#parameters里面不會含有任何值,所以#parameters.name也為空值。
38
39
其原因為:
40
當使用include標志時,被包含的頁面(included)里#parameters拿到的是包含頁面里的請求參數。
41
42
因此,這里必須手工調用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

40

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標簽iterator的使用:用于遍歷集合(java.util.Collection)或枚舉值(java.util.Iterator)。
8
Struts2非UI標簽property的使用:得到'value'的屬性,如果value沒提供,默認為堆棧頂端的元素。
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); //把參數names的值設為list對象的值.
20
%>
21
<html>
22
<head>
23
<title>Iterator</title>
24
</head>
25
<body>
26
<h3>
27
Names:
28
</h3>
29
<!--
30
1、此處的空property元素用于獲得當前iterator的值
31
2、status被設成stuts,在iterator的里面就可以通過#stuts取得IteratorStatus的對象。
32
IteratorStatus類包含當前序號信息,如是否第一個或最后一個,是否為奇數序號。
33
這些信息在我們做格式化的時候,顯得非常有用。
34
3.把EL表達式 #request.names 也就是集合list的值存到stuts里,再通過#stuts.odd判斷是否是奇數,
35
如果是奇數通過<s:property />取得stuts(集合list)的第一個值,否則再把背景顏色設置為red然后再輸出結果.
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標簽i18n的使用:加載資源包到值堆棧。它可以允許text標志訪問任何資源包的信息,而不只當前action相關聯的資源包。
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"裝載屬性頁面
17
2.s:text name="HelloLab" 找到屬性中對應的HelloLab然后在頁面中顯示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標簽include的使用:動態包含一個servlet的輸出(servlet或jsp的頁面)。
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
在包含頁面中傳遞參數,使用param標記,指定參數的名稱及對應參數值,類似JSP頁面中的include命令.
19
1.s:include value="/condition.jsp"包含一個絕對路徑,其中包含參數<s:param name="name">Max</s:param>以顯示有關MaxR的結果
20
2.s:include value="/i18n.jsp" 包含一個絕對路徑,沒有再包含參數.
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>這里是之后顯示的內容,純屬于本頁面!</h1>
30
</body>
31
<!--
32
value的提供有兩種方式,通過value屬性或者標簽中間的text,不同之處我們看一下例子:
33
34
<param name="color">blue</param>(A)
35
36
<param name="color" value="blue"/> (B)
37
(A)參數值會以String的格式放入statck.
38
(B)該值會以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標簽url的使用:加載資源包到值堆棧。它可以允許text標志訪問任何資源包的信息,而不只當前action相關聯的資源包。
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>表示靜態鏈接,
19
<s:url value="/i18n.jsp" />定義指向url的地址,value值為相對地址路徑.
20
可以嵌套param標記,向指定的url傳遞參數,該標記的值不能單獨使用,必須配合相關的頁面標記使用
21
<s:a href="%{url}">或<a href='<s:url value="/i18n.jsp" />'>i18n</a>
22
(調用id為url(指向"/condition.jsp")的url頁面.)
23
24
2. <s:url id="url" value="/condition.jsp">
25
<s:param name="name">Max</s:param>
26
</s:url>
27
相關于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
