我的问题是:例子:${name},name是从哪里取到的?疑问2:如果在struts1的action中把键值放到request,session的Attribute中,就可以在el中取到.如果在struts2的context中存放,好像也可以取到.那如果存一个map,会不会取到?为什么呢?
Map map = new HashMap();
map.put("name","AAA");struts用的不多,请指点一下.谢谢 by phoenix
Map map = new HashMap();
map.put("name","AAA");struts用的不多,请指点一下.谢谢 by phoenix
首先是访问List,页面中引用bean中list属性的方法为:#{bean.list[index]} 而对于Map,EL可以把Key作为一个属性来读取,因此对map的访问可以写为:#{bean.map.key},当然这样可以解决基本的问题,但是如果map中的key是一个包含了空格或特殊字符的String,那么很明显,这个字符串不符合作为属性名的条件,那么用上面的方法去访问明显是有问题的,所以我们很可以用另外一种方法访问Map中的value,#{bean.map[''key'']}。同时可以看到,因为EL中的内建对象基本都是用Map实现的,因此,EL中的访问方法也是:#{sessionScope[''key'']}。
所以 ${name} 也是可以取到的.
是按照page->request->session->application范围查找,找到为止。2.可以指定范围输出 %{requestScope.name}
3.struts2使用ognl表达式,struts2.1版本已经不支持EL,struts2.0版本好像还支持。 struts2.1 ActionContext中数据访问。 例: ActionContext ac = ActionContext.getContext();
ac.put("name", "test"); jsp显示:<s:property value="#name" />