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 <% @ 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
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 <% @ 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 >
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 <% @ 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 >
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 <% @ 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
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 <% @ 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 >