struts2 ongl

OGNL is the Object Graph Navigation Language

1. struts2利用内建的OGNL表达式支持,大大加强了Struts2的数据访问功能,

    XWork在原有的OGNL基础上,增加了对ValueStack的支持。

2.OGNL表达式可以直接生成一个集合(List ,Map

    2.1 直接生成List集合的语法为: {e1, e2, e3}

    2.2 直接生成Map的语法为 #{key1:value1, key2:value2,....}

    2.3 对于集合,OGNL提供了两个元素符: in , not in

        in判定某个元素是否在指定的集合中, not in 判定某个元素是否不在指定的计划中

       

        <s:if test="'foo' in {'foo','bar'}">

            包含

        </s:if>

        <s:else>

            不包含

        </s:else>

 

 

访问值栈中元素: name =

            <s:property value="username" />

            , password=

            <s:property value="pwd" />

            <br />

 

           

            访问值栈中对象的属性:

            <s:property value="userInfo.name" />,

            <s:property value="userInfo['name']" />,

            <s:property value="userInfo[\"age\"]"/>

 

            <br />

           

            OGNL is the Object Graph Navigation Language

            <br />

            <s:property value="userInfo.dogs.size()"/><br/>

       

            访问值栈中对象的方法:

            <s:property value="userInfo.getName()" />

            <br />

       

   

 

            访问值栈中action的方法:直接写Action的方法名

            <s:property value="sayHello()" />

            <br />

 

首先配置:

    <constant name="struts.ognl.allowStaticMethodAccess" value="true"></constant>

 

        <li>

            访问静态方法:struts.ognl.allowStaticMethodAccess设为"true" <br/>

            <s:property value="@com.pk.util.TimeHelper@getTime()" />

        </li>

        <li>

            访问静态属性:

            <s:property value="@com.pk.util.Constants@TITLE" />

        </li>

        <li>

            访问Math类的静态方法:

            <s:property value="@@random()" />

        </li>

 

 

访问List:

        <s:property value="userList" />

        <br />

 

        访问List中某个元素:

        <s:property value="userList[2]" />

        <br />

        访问List中元素某个属性的集合:

        <s:property value="userList.{age}" />

        <br />

 

        访问List中某个元素的属性:

        <s:property value="userList[0].age" />

    <br/>

        List的大小:

        <s:property value="userList.size()" />  -- <s:property value="userList.size" />

        <hr />

        访问Set:

        <s:property value="userSet" />

        <br />

        无法访问Set中某个元素:

        <s:property value="userSet[1]" />

        <br />

        Set的大小:

        <s:property value="userSet.size()" />  -- <s:property value="userSet.size" />

        <hr />

        访问Map:

        <s:property value="userMap" />

        <br />

 

        访问Map中某个元素:

        <s:property value="userMap.obj1" />

        ---

        <s:property value="userMap['obj1']" />

        ---

        <s:property value="userMap[\"obj1\"]"/>

        <br />

        访问Map中所有的key:

        <s:property value="userMap.keys" />

        <br />

        访问Map中所有的value:

        <s:property value="userMap.values" />

        <br />

        Map的大小:

        <s:property value="userMap.size()" />

        ---

        <s:property value="userMap.size" />

 

访问ActionContext中的对象

        <s:property value="#request.requestStr" />

        <br />

        访问ActionContext中的对象的方法

        <s:property value="#session.userInfo.name" />

       

        <hr/>

       

        <s:select label="label" name="name" list="{'name1','name2','name3'}"

            value="'name2'" /><br />

           

        <s:select label="label" name="name"

            list="#{'foo':'foovalue', 'bar':'barvalue'}" value="'bar'"/>

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值