jsp里面有个很像EL表达式的#{ },是什么表达式?

jsp里面有个很像EL表达式的#{ },是什么表达式?
请说下使用方法,谢谢^^

这个是Struts2 OGNL表达式

OGNL要结合struts标签来使用。由于比较灵活,也容易把人给弄晕,尤其是“%”、“#”、“$”这三个符号的使用。

“#”符号有三种用途:
(1)、访问非根对象(struts中值栈为根对象)如OGNL上下文和Action上下文,#相当于ActionContext.getContext();下表有几个ActionContext中有用的属性:
parameters
包含当前HTTP请求参数的Map
#parameters.id[0]作用相当于request.getParameter("id")

request
包含当前HttpServletRequest的属性(attribute)的Map
#request.userName相当于request.getAttribute("userName")

session
包含当前HttpSession的属性(attribute)的Map
#session.userName相当于session.getAttribute("userName")

application
包含当前应用的ServletContext的属性(attribute)的Map
#application.userName相当于application.getAttribute("userName")

注:attr 用于按request > session > application顺序访问其属性(attribute),#attr.userName相当于按顺序在以上三个范围(scope)内读取userName属性,直到找到为止。用于过滤和投影(projecting)集合,如books.{?#this.price<100};构造Map,如#{'foo1':'bar1', 'foo2':'bar2'}。

(2)、用于过滤和投影(projecting)集合,如: books.{?#this.price>35}

books.{?#this.price>35}

(3)、构造Map,如: #{'foo1':'bar1', 'foo2':'bar2'}

#{'foo1':'bar1', 'foo2':'bar2'}这种方式常用在给radio或select、checkbox等标签赋值上。如果要在页面中取一个map的值可以这样写:

<s:property value="#myMap['foo1']"/>

<s:property value="#myMap['foo1']"/>

楼主具体请看参考资料:

参考资料:http://jlins.javaeye.com/blog/567954

温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-07-20
jsf里面的标签
和el差不多的
第2个回答  2015-12-20
  OGNL表达式
  构造Map,如#{'foo1':'bar1', 'foo2':'bar2'}。
  支持容器的构造的表达式:
  例如:{"green", "red", "blue"}构造一个List,#{"key1" : "value1", "key2" : "value2", "key3" : "value3"}构造一个Map
  OGNL是Object-Graph Navigation Language的缩写,它是一种功能强大的表达式语言,通过它简单一致的表达式语法,可以存取对象的任意属性,调用对象的方法,遍历整个对象的结构图,实现字段类型转化等功能。它使用相同的表达式去存取对象的属性。
第3个回答  2010-07-20
是不是struts的标签啊?
相似回答