我是靠谱客的博主 烂漫哈密瓜,最近开发中收集的这篇文章主要介绍struts2_ognl表达式符号的使用方法,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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。

最后

以上就是烂漫哈密瓜为你收集整理的struts2_ognl表达式符号的使用方法的全部内容,希望文章能够帮你解决struts2_ognl表达式符号的使用方法所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(39)

评论列表共有 0 条评论

立即
投稿
返回
顶部