∪∩deniable Design
个人JAVA版GAE(google app engine),struts2+jpa+jQuery开发,互相交流 http://iunbug.appspot.com/
BlogJava
::
首页
::
新随笔
::
联系
::
聚合
::
管理
关于Struts 2.0.11与表达式
Posted on 2008-08-15 21:43
∪∩BUG
阅读(428)
评论(0)
编辑
收藏
所属分类:
Struts2学习笔记
1
Struts 笔记
2
2008 08 15
3
当你使用struts 2 tags时,如果使用代码:
4
<
s:set
name
="name"
value
="<%= "
'" + request.getParameter("name") + "'" %
>
" />
5
或者
6
7
<
s:set
name
="name"
value
="${param.name}"
/>
8
都会发生下列错误:
9
According to TLD or attribute directive in tag file, attributevalue does not accept any expressions
10
而得使用:
11
<
s:set
name
="name"
value
="#parameters.name[0]"
/>
12
才行
13
原因可能是因为你使用了
<
%..%
>
代码 or JSP EL表达式。Struts 2从 version2.0.11开始已经不支持strutstag与JSP EL表达式混合使用了(不在struts tag里使用EL还是可以的)
14
15
16
技巧(Trick Tip):
17
对于
<
s:property
>
,是使用
18
<
s:property
value
="#parameters.name"
/>
19
而对于
<
s:set
>
,则要使用(否则出错):
20
<
s:set
name
="name"
value
="#parameters.name[0]"
/>
21
22
但是如果使用struts include tag来传参数,则
<
s:property
>
和
<
s:set
>
无法获取传来的参数,如:
23
<
body
>
24
<
s:include
value
= "/welcome.jsp"
>
25
<
s:param
name
="name"
>
Scott
</
s:param
>
26
</
s:include
>
27
</
body
>
28
那么在webcome.jsp里通过
<
s:property
>
和
<
s:set
>
无法获取"name"参数:
29
<
s:property
value
="#parameters.name"
/>
30
<
s:set
name
="name"
value
="#parameters.name[0]"
/>
31
而只能够用
32
<
%request
.getParameter("name")%
>
33
来获取
34
35
例如:
36
<
%@ page
contentType
="text/html; charset=UTF-8"
%
>
37
<
%@ taglib
prefix
="s"
uri
="/struts-tags"
%
>
38
<!
DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
>
39
<
html
>
40
<
head
>
41
<
title
>
Condition Flow
</
title
>
42
</
head
>
43
<
body
>
44
<
h3
>
45
Condition Flow
46
</
h3
>
47
48
<!--
注意"'" + request.getParameter("name") + "'"这里的单引号
-->
49
<!--
s:if test="#name == 'Max'" 判断取出name的值是否与Max相等,#表示取出值
-->
50
<
s:set
name
="name"
51
value
="#parameters.name[0]"
/>
52
53
<
s:if
test
="#name == 'Max'"
>
54
Max's file here
55
</
s:if
>
56
<
s:elseif
test
="#name == 'Scott'"
>
57
Scott's file here
58
</
s:elseif
>
59
<
s:else
>
60
Other's file here
61
</
s:else
>
62
</
body
>
63
</
html
>
64
<!--
65
这里有点小技巧:
66
本来可以用#parameters.name[0]来获得,请求中name的值。但是,在我实现include例子时,
67
无论我用param标志给name赋任何值,#parameters里面不会含有任何值,所以#parameters.name也为空值。
68
69
其原因为:
70
当使用include标志时,被包含的页面(included)里#parameters拿到的是包含页面里的请求参数。
71
72
因此,这里必须手工调用request.getParameter("name")。
73
-->
74
新用户注册
刷新评论列表
只有注册用户
登录
后才能发表评论。
网站导航:
博客园
IT新闻
知识库
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)--快速入门(20643)