∪∩deniable Design
个人JAVA版GAE(google app engine),struts2+jpa+jQuery开发,互相交流 http://iunbug.appspot.com/
BlogJava
::
首页
::
新随笔
::
联系
::
聚合
::
管理
struts2.0学习笔记(一)--常用非UI标记
Posted on 2008-08-16 23:12
∪∩BUG
阅读(1164)
评论(1)
编辑
收藏
所属分类:
Struts2学习笔记
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
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
>
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
>
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
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
>
评论
#
re: struts2.0学习笔记(一)--常用非UI标记
回复
更多评论
2008-10-14 11:29 by
惠万鹏
very nice
新用户注册
刷新评论列表
只有注册用户
登录
后才能发表评论。
网站导航:
博客园
IT新闻
Chat2DB
C++博客
博问
相关文章:
第一次参与开源项目--完成翻译jQuery.Syntax指南成中文.
Google labs 推出Google 代码搜索 - 搜索开放源代码.
终于解决了Myeclipse7 响应慢的问题.
struts2.0学习笔记(六)--Validation(数据效验)
struts2.0学习笔记(五)--Converter(转换器)
struts2.0学习笔记(四)--I18n(国际化)
struts2.0学习笔记(三)--Action
struts2.0学习笔记(二)--常用UI标记
struts2.0学习笔记(一)--常用非UI标记
关于Struts 2.0.11与表达式
Powered by:
BlogJava
Copyright © ∪∩BUG
留言簿
(9)
给我留言
查看公开留言
查看私人留言
我参与的团队
深圳Java俱乐部(0/0)
随笔分类
(78)
Database学习笔记(4)
Hibernate学习笔记(7)
JavaScript学习笔记(28)
Java学习笔记(6)
JSP学习笔记(7)
Struts1.X学习笔记(2)
Struts2学习笔记(11)
VC++/MFC学习笔记(5)
程序员必学英语(8)
随笔档案
(138)
2012年10月 (1)
2012年9月 (4)
2012年7月 (1)
2012年6月 (11)
2011年7月 (4)
2011年6月 (1)
2011年5月 (6)
2011年4月 (1)
2011年3月 (1)
2011年2月 (6)
2011年1月 (4)
2010年12月 (9)
2010年11月 (12)
2010年10月 (9)
2010年9月 (33)
2009年4月 (1)
2008年9月 (6)
2008年8月 (23)
2008年7月 (5)
搜索
最新评论
1. re: Visual C++ 6.0调试功能 图解教程(1)--快速入门
不错不错,谢谢!
--huqimei
2. re: 基于jQuery的Ajax文件上传插件--Ajax Upload
什么几把东西,都打不开
--邓海龙
3. re: 基于jQuery的Ajax文件上传插件--Ajax Upload
挺好
--邓海龙
4. re: Visual C++ 6.0调试功能 图解教程(1)--快速入门
表示感谢的说
--墨色
5. re: MFC简易文章编辑器(Brute Froce算法)(符源码)
3r
--fengjiajun
阅读排行榜
1. Visual C++ 6.0调试功能 图解教程(1)--快速入门(20645)