struts2 学习(3)

ognl

struts2中,可以使用struts2 的标签,加上ognl表达式来读取action对象中的内容

 

访问值栈中的action的普通属性: username = <s:property value="username"/> 访问值栈中对象的普通属性(get set方法):<s:property value="user.age"/> | <s:property value="user['age']"/> | <s:property value="user[/"age/"]"/> | wrong: <%--<s:property value="user[age]"/>--%> 访问值栈中对象的普通属性(get set方法): <s:property value="cat.friend.name"/> 访问值栈中对象的普通方法:<s:property value="password.length()"/> 访问值栈中对象的普通方法:<s:property value="cat.miaomiao()" /> 访问值栈中action的普通方法:<s:property value="m()" /> <hr /> 访问静态方法:<s:property value="@com.bjsxt.struts2.ognl.S@s()"/> 访问静态属性:<s:property value="@com.bjsxt.struts2.ognl.S@STR"/> 访问Math类的静态方法:<s:property value="@@max(2,3)" /> <hr /> 访问普通类的构造方法:<s:property value="new com.bjsxt.struts2.ognl.User(8)"/> <hr /> 访问List:<s:property value="users"/> 访问List中某个元素:<s:property value="users[1]"/> 访问List中元素某个属性的集合:<s:property value="users.{age}"/> 访问List中元素某个属性的集合中的特定值:<s:property value="users.{age}[0]"/> | <s:property value="users[0].age"/> 访问Set:<s:property value="dogs"/> 访问Set中某个元素:<s:property value="dogs[1]"/> 访问Map:<s:property value="dogMap"/> 访问Map中某个元素:<s:property value="dogMap.dog101"/> | <s:property value="dogMap['dog101']"/> | <s:property value="dogMap[/"dog101/"]"/> 访问Map中所有的key:<s:property value="dogMap.keys"/> 访问Map中所有的value:<s:property value="dogMap.values"/> 访问容器的大小:<s:property value="dogMap.size()"/> | <s:property value="users.size"/> <hr /> 投影(过滤):<s:property value="users.{?#this.age==1}[0]"/> 投影:<s:property value="users.{^#this.age>1}.{age}"/> 投影:<s:property value="users.{$#this.age>1}.{age}"/> 投影:<s:property value="users.{$#this.age>1}.{age} == null"/> <hr /> []:<s:property value="[0].username"/>

#有三种用途:访问OGNL上下文和Action上下文,

 

#parameters.id[0]作用相当于request.getParameter("id")

#request.userName相当于request.getAttribute("userName")

#session.userName相当于session.getAttribute("userName")

#application.userName相当于application.getAttribute("userName")

 

attr 用于按request > session > application顺序访问其属性(attribute)

#attr.userName相当于按顺序在以上三个范围(scope)内读取userName属性,

 

 用于过滤和投影(projecting)集合,如books.{?#this.price<100}; 构造Map,如#{'foo1':'bar1', 'foo2':'bar2'}。

 

 

${} 可以替代 <s:property /> 使用

你可能感兴趣的:(Math,struts,list,user,application,action)