Struts2-OGNL表达式

OGNL表达式语言(#号的用法)

用法1:访问OGNL上下文和Action上下文,#相当ActionContext.getContext()

1、 如果访问其他Context中的对象,由于他们不是根对象,所以在访问时,

        需要添加#前缀。


也可写为#request[‘userName’]#session[‘userName’]#appliction[‘userName’]


用法1:访问OGNL上下文和Action上下文,#相当ActionContext.getContext()

 2 OGNL会设定一个根对象(root对象),在Struts2中根对象就是ValueStack

      (值栈)。如果要访问根对象(即ValueStack)中对象的属性,则可以省略

         #命名对象,直接访问该对象的属性即可

Action中代码:

  ValueStackvalueStack=ServletActionContext.getContext().getValueStack();

  valueStack.set("msg","msg_xxx");

Jsp页面:

    valueStack:<s:property value="msg"/><br>




OGNL表达式语言(%用法)

“%”符号的用途是在标签的属性值被理解为字符串类型时,告诉执行环境%{}里的是OGNL表达式。

形式一: { }ognl表达式

 Action中的代码:

      ServletActionContext.getRequest().setAttribute("username","username_request");                                                                          

  jsp页面:

      <s:textfieldname="name" label="%{#request.username}"/>

 运行结果是

    username_request:<inputtype="text" name="name" value=""id="name"/>

形式二:{ }中值用 ’ 引起来,这是不再是ogle表达式,而是普通的字符串

jsp页面:

      <s:textfieldname="name" label="%{'foo'}"/>

运行结果是

    foo :<input type="text"name="name" value="" id="name"/>


OGNL表达式语言($用法)


“$”有两个主要的用途

    *  用于在国际化资源文件中,引用OGNL表达式

    *  在Struts 2配置文件中,引用OGNL表达式

struts2配置文件中引用ognl表达式 ,引用request等作用域中的值

 Action中的代码:

        ServletActionContext.getRequest().setAttribute("msgxx","msg_request");

 struts.xml文件中

        <package name="ognl"   namespace="/ognl"extends="struts-default" >

              <actionname="ognlAction_*"class="cn.itcast.ognl.OgnlAction"method="{1}">

                         <result name="ognl">/ognl/ongl.jsp?msg=${#request.msgxx}</result>

              </action>

        </package>

 jsp页面:

       parametersMsg:<s:propertyvalue="#parameters.msg[0]"/>

 运行结果是

       msg_request

struts2配置文件中引用ognl表达式 ,引用值栈的值

 Action中的代码:

        valueStack.set("msgxx","msg_valueStack");

 struts.xml文件中

        <package name="ognl"   namespace="/ognl"extends="struts-default" >

              <actionname="ognlAction_*"class="cn.itcast.ognl.OgnlAction"method="{1}">

                         <result name="ognl">/ognl/ongl.jsp?msg=${msgxx}</result>

              </action>

        </package>

 jsp页面:

       parametersMsg:<s:propertyvalue="#parameters.msg[0]"/>

 运行结果是

      msg_valueStack


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值