注册 登录
编程论坛 J2EE论坛

JSPEL难问题

发布于 2010-07-22 13:48, 511 次点击
在jsp页面中如何得到List和Map集合的值
我写的方法如下:
<%
Map map=new HashMap();
map.put("name1",new Integer(1));
map.put("age1","12");
map.put("password1","1234567");
%>
<%List Listname=new ArrayList();
for(int i=0;i<=10;i++){
Listname.add(i);
}%>
得到map的值是:${map.age1}
得到List的第一个值是${Listname[0]}
但是上面的两个值都得不到。如果换成map.get('age1')和Listname.get(0)是完全可以得到值

请问如何来解决这个问题。不要将集全的值放到内置对象中,这种方法不是得到集合的值,谢谢
6 回复
#2
hsh_19872010-07-22 16:57
表达式语言是到范围对象(pageContext,request,session,application)中查找相应属性。而非直接在页面中查找实例或局部变量.

表达式语言不能用来显示<%%>定义的局部变量值
#3
2010-07-22 17:06
回复 2楼 hsh_1987
   我自己定义的List集合,就是不知道,如何来得到这个集合里面的值,
  
#4
baifenghan2010-08-01 04:24
如果只是自己想做一个EL的学习,可以使用
<%
Map map=new HashMap();
map.put("name1",new Integer(1));
map.put("age1","12");
map.put("password1","1234567");
pageContext.setAttribute("map", map);
%>
<%List Listname=new ArrayList();
for(int i=0;i<=10;i++){
Listname.add(i);
}
pageContext.setAttribute("list", Listname);
%>
${map["age1"]}
#5
2010-08-01 11:33
回复 4楼 baifenghan
${map["age1"]}如果 这样写的话,也是得到page的值啊。根本就不能够实现直接得到集合
#6
baifenghan2010-08-01 14:38
回复 5楼 wtuaimmmm
其实EL去获取使用属性的时候,是先从制定的scope去获得,如果没有,最后再到pageContext中全局搜苏,我说了,这里只是将一个属性放入上下文的方法,没有其他什么意思.
1