OGNL备忘<s:property /> 1

[code]
/**
1。、/index.jsp?username=aaa 然后再Action中有一个属性叫username,get set方法,而且Action中的属性都在值栈中

2。/index.jsp?user.age=8 想初始化Domain Model ,可以自己new,也可以传参数值让strutsnew如:user.age,但是如果要struts 来 new,那么他会去调用Domain Model的空构造方法,所以我们必须保证Domain Model有空构造方法,如User有空构造方法。。。

3.同2

4。对链接没要求,因为password这个String对象一定会被new 出来 这里password是一个String对象,可以这样直接调用它的方法

5。同4

6。对链接没要求, 因为值栈对象已经new 出来了,那么可以调用值栈中对象的方法

7。 对链接没要求, 因为是静态的东西,当然有了。。。但是要在struts.xml中设置一个常量 <constant name="struts.ognl.allowStaticMethodAccess" value="true" ></constant>

8. 对链接没要求, 同7

9. 对链接没要求,只能访问Math类 ,用得也不多

10。对链接没要求,允许你new 一个对象

11。返回像 {爱爱 ,dd ,sadfsa}这样的东西
12。返回 dd (如果List中的值是上面的话)
13。List中每个元素的age集合都被访问
14。顾名思义
15。与List一样

16。因为Set中是没有顺序的,所以取Set当然取不到,dogs[1]这样的概念不存在

17。同15
18。dogMap.dog101中dogMap是一个Map dog101是一个key,通过这样可以取到value

19-20-21 不多说了

22。users.{?#this.age==1}这里users 是一个集合,这意思是拿到user.age=1的那些对象集合,打印出来是 [user1]即使只有一项, users.{?#this.age==1}[0]将打印出来user1,注意[]不见了,呵呵?代表有无

23。users.{^#this.age>1}打印age>1的开头那个元素。。。。^表开头
users.{$#this.age>1}.{age}代表打印age>1的开头那个元素的age属性值集合
24。同23只不过是结尾的那个

25。就是判断集合里面有没有元素,返回false或 true

26.="[0]是访问值栈中的第一个对象到最后那个对象的集合,[0].name会对这些对象访问,然后找到他们是不是有name属性,有就把值打印出来


*/
<ol>
<li>1。访问值栈中的action的普通属性: username = <s:property value="username"/> </li>
<li>2. 访问值栈中对象的普通属性(get set方法):<s:property value="user.age"/> | <s:property value="user['age']"/> | <s:property value="user[\"age\"]"/> | wrong: <%--<s:property value="user[age]"/>--%></li>
<li>3。访问值栈中对象的普通属性(get set方法): <s:property value="cat.friend.name"/></li>
<li>4。访问值栈中对象的普通方法:<s:property value="password.length()"/></li>
<li>5. 访问值栈中对象的普通方法:<s:property value="cat.miaomiao()" /></li>
<li>6. 访问值栈中action的普通方法:<s:property value="m()" /></li>
<hr />
<li>7. 访问静态方法:<s:property value="@com.bjsxt.struts2.ognl.S@s()"/></li>
<li>8. 访问静态属性:<s:property value="@com.bjsxt.struts2.ognl.S@STR"/></li>
<li>9. 访问Math类的静态方法:<s:property value="@@max(2,3)" /></li>
<hr />
<li>10. 访问普通类的构造方法:<s:property value="new com.bjsxt.struts2.ognl.User(8)"/></li>
<hr />
<li>11. 访问List:<s:property value="users"/></li>
<li>12. 访问List中某个元素:<s:property value="users[1]"/></li>
<li>13. 访问List中元素某个属性的集合:<s:property value="users.{age}"/></li>
<li>14. 访问List中元素某个属性的集合中的特定值:<s:property value="users.{age}[0]"/> | <s:property value="users[0].age"/></li>
<li>15.访问Set:<s:property value="dogs"/></li>
<li>16.访问Set中某个元素:<s:property value="dogs[1]"/></li>
<li>17.访问Map:<s:property value="dogMap"/></li>
<li>18.访问Map中某个元素:<s:property value="dogMap.dog101"/> | <s:property value="dogMap['dog101']"/> | <s:property value="dogMap[\"dog101\"]"/></li>
<li>19.访问Map中所有的key:<s:property value="dogMap.keys"/></li>
<li>20.访问Map中所有的value:<s:property value="dogMap.values"/></li>
<li>21.访问容器的大小:<s:property value="dogMap.size()"/> | <s:property value="users.size"/> </li>
<hr />
<li>22.投影(过滤):<s:property value="users.{?#this.age==1}[0]"/></li>
<li>23.投影:<s:property value="users.{^#this.age>1}.{age}"/></li>
<li>24.投影:<s:property value="users.{$#this.age>1}.{age}"/></li>
<li>25.投影:<s:property value="users.{$#this.age>1}.{age} == null"/></li>
<hr />
<li>26.[]:<s:property value="[0].username"/></li>

</ol>[/code]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值