关于EL表达式的奇怪问题!

ppfyk 2009-10-18 11:07:39
在JSP页面 pg1.jsp中写入一行:
<a href="showInfo.jsp?id=4">到新页面showInfo.jsp</a>

而showInfo.jsp中使用
${pageScope.id }
或${requestScope.id }
或干脆用${id}
都显示为空,
但是,<%=request.getParameter("id") %>显示正确
这是怎么回事?我的的容器是tomcat6.0.20,支持EL表达式的,EL表达式的其它表示方法都支持得很不错.
...全文
118 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
godismydaughter 2009-11-28
  • 打赏
  • 举报
回复
学习了
APOLLO_TS 2009-10-18
  • 打赏
  • 举报
回复
web空间DTD多看看!

基本是服务程序版本>2.4 才行
closewbq 2009-10-18
  • 打赏
  • 举报
回复
你的理解就是错误的,
----》${pageScope.id }
----》${requestScope.id }
他们只是获取不同范围对象的值,也就是说,当你在page或者request的setArrtbute中set了id
你才能获取到。
而<%=request.getParameter("id") %>接收的是你请求的参与,或者是表单的控件值。
两者没有关系!
anttu 2009-10-18
  • 打赏
  • 举报
回复
1L的学习了
cocofuyi 2009-10-18
  • 打赏
  • 举报
回复
xue xi le
Betterjava 2009-10-18
  • 打赏
  • 举报
回复
使用${param.id}是获得参数的;
${pageScope.id }
或${requestScope.id }
或干脆用${id} ,你这些只能获得作用域中保存的值,比如request.setArrtbute()中保存的值。
scean_1 2009-10-18
  • 打赏
  • 举报
回复
pageScope和requestScope都是显示其中的attribute属性值的,也就是当你调用request.setAttribute()或者pageContext.setAttribute()的时候才可以通过${}的方式取。你上面的<a href="showInfo.jsp?id=4">到新页面showInfo.jsp </a> 只能通过<%=request.getParameter("id") %>取。
zhaoyunrui 2009-10-18
  • 打赏
  • 举报
回复
pageScope这是一个页面的作用域,仅此页面有效一旦转向或是提交就会失效的.....那样你如何能在第二个页面去取前一个页面的pageScope的值呢》》》
zhanlang9075 2009-10-18
  • 打赏
  • 举报
回复
${context.pageScope.id }也可以坝
jznu 2009-10-18
  • 打赏
  • 举报
回复
楼上说的很多是对的,但还是没有提出解决问题的办法,我给你写一个,不需要理论上的费话,你自己会看明白!
只需使用param对象:
${param.id }
水中影子 2009-10-18
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 scean_1 的回复:]
pageScope和requestScope都是显示其中的attribute属性值的,也就是当你调用request.setAttribute()或者pageContext.setAttribute()的时候才可以通过${}的方式取。你上面的 <a href="showInfo.jsp?id=4">到新页面showInfo.jsp </a> 只能通过 <%=request.getParameter(¡­
[/Quote]
要想用EL表达式必须把object类型数据存储在作用域里,你根本没存储
舷Kelvin 2009-10-18
  • 打赏
  • 举报
回复
因为parameter和attribute是两回事嘛。
  • 打赏
  • 举报
回复
pageScope和requestScope都是显示其中的attribute属性值的,也就是当你调用request.setAttribute()或者pageContext.setAttribute()的时候才可以通过${}的方式取。你上面的 <a href="showInfo.jsp?id=4">到新页面showInfo.jsp </a> 只能通过 <%=request.getParameter("id") %>取。
我这有一个专门获取URL参数的js很好用 我在项目中经常使用到你可以参考参考。

例如:<a href="b.html?name=zhangsan&sex=男&aaa=100">aaa</a>

<script>
function gup(name) {
name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
var regexS = "[\\?&]"+name+"=([^&#]*)";
var regex = new RegExp( regexS );
var results = regex.exec( window.location.href );
if( results == null ) {
return "";
} else {
return results[1];
}
}
var name = gup("name");
alert(name);
var sex = gup("sex");
alert(sex);
var aaa = gup("aaa");
alert(aaa);
</script>
jiazaibo 2009-10-18
  • 打赏
  • 举报
回复
呵呵,学习了、
renqitianwang 2009-10-18
  • 打赏
  • 举报
回复
你写的有错或服务程序的版本过低,还有你的数据没有存在作用域

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧