struts2 - OGNL

struts框架将ActionContext和value stack 作为OGNL的根对象。

                     |
                     |--application
                     |
                     |--session
       context map---|
                     |--value stack(root)
                     |
                     |--action (the current action)
                     |
                     |--request
                     |
                     |--parameters
                     |
                     |--attr (searches page, request, session, then application scopes)
                     |

每个action的实例都会被放到value stack里,在value stack中的不需要使用#符号就能访问

例如:

获取action中的一个property

<s:property value="postalCode"/>
获取session、request中的值

<s:property value="#session.mySessionPropKey"/> or
<s:property value="#session['mySessionPropKey']"/> or
<s:property value="#request['myRequestPropKey']"/>
也可以通过ActionContext对象获得

ActionContext.getContext().getSession().get("mySessionPropKey");
也可以使用EL表达式

<c:set var="foo" value="bar" scope="request"/>
<s:textfield name="username" label="%{#request.foo}" />

表示集合的方法

list:格式{e1,e2,e3}

<s:select label="label" name="name" list="{'name1','name2','name3'}" value="%{'name2'}" />
map:格式 #{key1:value1,key2:value2}

<s:select label="label" name="name" list="#{'foo':'foovalue', 'bar':'barvalue'}" />

可以用in和not in判断元素是否在集合中

<s:if test="'foo' in {'foo','bar'}">
   muhahaha
</s:if>
<s:else>
   boo
</s:else>

<s:if test="'foo' not in {'foo','bar'}">
   muhahaha
</s:if>
<s:else>
   boo
</s:else>







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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值