您的位置:首页 > 编程语言 > Java开发

struts2_ognl表达式符号的使用方法

2017-07-08 16:53 453 查看
1. #的使用

<1>代表ActionContext.getContext()上下文

<s:property value="#request.name" />  ------------>  ActionContext().getContext().getRequest().get("name");

//获取各个域
#request
#session
#application
#attr
#parameters


<2>不写# 默认在 值栈中root中进行查找

<s:property value="name" /> 在root中查找name属性
* 查询元素时,从root的栈顶元素 开始查找, 如果访问指定栈中元素

<s:property value="[1].name" />  访问栈中第二个元素name属性
* 访问第二个元素对象 <s:property value="[1].top" />


<3>进行投影映射(结合复杂对象遍历)

1)集合的投影(只输出部分属性
<h1>遍历集合只要name属性</h1>
<s:iterator value="products.{name}" var="pname">
<s:property value="#pname"/>
</s:iterator>
2)遍历时,对数据设置条件
<h1>遍历集合只要price大于1500商品</h1>
<s:iterator value="products.{?#this.price>1500}" var="product">
<s:property value="#product.name"/> --- <s:property value="#product.price"/>
</s:iterator>
3)综合
<h1>只显示价格大于1500 商品名称</h1>
<s:iterator value="products.{?#this.price>1500}.{name}" var="pname">
<s:property value="#pname"/>
</s:iterator>


<4>使用#构建map集合

经常结合 struts2 标签用来生成 select、checkbox、radio
<h1>使用#构造map集合 遍历</h1>
<s:iterator value="#{'name':'aaa','age':'20', 'hobby':'sport' }" var="entry">
key : <s:property value="#entry.key"/> ,
value:  <s:property value="#entry.value"/> <br/>
</s:iterator>


2. %的使用

 %作用:就是用于设定当前是否要解析其为 ognl表达式。所有表达式如果想要让其是ognl:%{表达式}

%{表达式} 当前表达式会被做为ognl解析.

%{‘表达式’} 当前表达式不会被做为ognl解析。

<s:property value=”表达式”> 对于s:property标签,它的value属性会被默认做为ognl

3. $的使用

 $作用:就是在配置文件中使用ognl表达式来获取valueStack中数据.

1.struts.xml
<result type="stream">
<param name="contentType">${contentType}</param>
</result>

2.在校验文件中使用
${min}  ${max}
${minLength} ${maxLength}

3.在国际化文件中使用

在properties文件中
username=${#request.username}
在jsp页面
<s:text name="username">


总结:#就是用于获取数据 %就是用于设置是否是ognl表达式 $就是在配置文件中使用ognl。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ognl表达式