ognl表达式标记符号的用法

“#”的用法

集合的投影(只输出部分属性)用法 collectionName.{expression}

      

----------------------------------------------

 

用法2集合的过滤

 

"?#" 过滤所有符合条件的集合

"^#" 过滤第一个符合条件都元素

"$#" 过滤最后一个符合条件的元素

 

 

      

      

 

personList里边放了许多个person

 

var关键字 在循环的时候把每一个Person对象放到map栈,this代表每一个person

 

所以用#this ,而?表示选择

---------------------------------------------

 

 

      

      

"%"符号的用法

 

在标签的属性值被理解为字符串类型的时候,告诉执行环境

 

用法1.

%{}里的是ognl表达式

 

 

备注:因给value引号里边的值 含有井号,解析不出来, 所以用%{} 括起来,告诉编译器,

 

{}里边内容的是ognl表达式。

 

用法2.

{}中的内容 加上'',解析成一个字符串

 

------------------------------------------------------------------------------------------------------------

“$”符号的用法

Struts2配置文件中,使用ognl表达式

 -------------------------------------------

OgnlAction中,把"msgxxx_request"这个值放到request作用域里边。

 

ServletActionContext.getRequest().setAttribute("msgxxx","msgxxx_request");

 

下边是struts_ognl.xml文件

      

      

 

method="{1}">

 

              /ognl/ognl.jsp?msg=${#request.msgxxx}

      

-----------------------------------

当跳转到ognl.jsp的时候,要想要获取 "msgxxx_request"这个值,可以通过request得到,

 

对应的键是"msgxxx"

------------------------------------

我也可以通过msg得到这个值

 

/ognl/ognl.jsp?msg=${#request.msgxxx}

 

在配置文件中,先从request作用域中得到这个值,然后在使用msg作为参数名,使用参数传递这个值。可以看出 参数和参数值是放到parameters里边了

 

就可以这样得到值

 

这个用法,可以解决重定向的问题,这个重定向到一个Action中,request作用域失效,可以在struts.xml文件中再传递一次request.

 

 

 

你可能感兴趣的:(Struts2)