当前位置: 首页 > news >正文

#、%和$符号在OGNL表达式中经常出现

1.#符号的用途一般有三种。

   1)访问非根对象属性,例如示例中的#session.msg表达式,由于Struts 2中值栈被视为根对象,所以访问其他非根对象时,需要加#前缀。实际上,#相当于ActionContext. getContext();#session.msg表达式相当于ActionContext.getContext().getSession(). getAttribute(”msg”) 。

    2)用于过滤和投影(projecting)集合,如示例中的persons.{?#this.age>20}。

    3)用来构造Map,例如示例中的#{’foo1′:’bar1′, ’foo2′:’bar2′}。

2.%符号

%符号的用途是在标志的属性为字符串类型时,计算OGNL表达式的值。如下面的代码所示: 构造Map <s:set name=”foobar” value=”#{’foo1′:’bar1′, ‘foo2′:’bar2′}” />

<p>The value of key “foo1″ is <s:property value=”#foobar['foo1']” /></p>

<p>不使用%:<s:url value=”#foobar['foo1']” /></p>

<p>使用%:<s:url value=”%{#foobar['foo1']}” /></p>

 

3.$符号

$符号主要有两个方面的用途。

   在国际化资源文件中,引用OGNL表达式,例如国际化资源文件中的代码:reg.agerange=国际化资源信息:年龄必须在${min}同${max}之间。

    在Struts 2框架的配置文件中引用OGNL表达式,例如下面的代码片断所示:

<validators>

    <field name=”intb”>

            <field-validator type=”int”>

            <param name=”min”>10</param>

            <param name=”max”>100</param>

            <message>BAction-test校验:数字必须为${min}为${max}之间!</message>

        </field-validator>

    </field>

相关文章:

  • JavaEE进阶知识学习-----SpringCloud(二)实践准备
  • JavaScript And Ajax(JavaScript 基本示例)
  • linux centos 如何设置swap大小?
  • 【资源共享】RK3288 WiFiBT 开发配置参考说明
  • 仪表运算放大器INA333
  • 5分钟快速了解es6常用特性
  • Hadoop 2.0 NameNode HA和Federation实践
  • 再也不用担心this指向的问题了
  • 快速理解URL重写
  • 12月,1000人,来一场属于敏捷人的重逢吧!
  • 话里话外:成功CEO的用人之道——按需激励
  • 001-ant design pro 页面加载原理及过程,@connect 装饰器
  • 对ASP网站程序的设计
  • “一盘货卖全球”之后,天猫今年将推出国货“出海2.0版”
  • 分析图第一讲前期准备,渲染白模5.9
  • 深入了解以太坊
  • [微信小程序] 使用ES6特性Class后出现编译异常
  • 《Javascript数据结构和算法》笔记-「字典和散列表」
  • 【每日笔记】【Go学习笔记】2019-01-10 codis proxy处理流程
  • 0x05 Python数据分析,Anaconda八斩刀
  • Angular js 常用指令ng-if、ng-class、ng-option、ng-value、ng-click是如何使用的?
  • bootstrap创建登录注册页面
  • JWT究竟是什么呢?
  • leetcode46 Permutation 排列组合
  • LeetCode541. Reverse String II -- 按步长反转字符串
  • Lucene解析 - 基本概念
  • oldjun 检测网站的经验
  • session共享问题解决方案
  • webpack4 一点通
  • 从零开始在ubuntu上搭建node开发环境
  • 对象管理器(defineProperty)学习笔记
  • 和 || 运算
  • 警报:线上事故之CountDownLatch的威力
  • 前端存储 - localStorage
  • 前端代码风格自动化系列(二)之Commitlint
  • 前端技术周刊 2018-12-10:前端自动化测试
  • 用quicker-worker.js轻松跑一个大数据遍历
  • 在Mac OS X上安装 Ruby运行环境
  • media数据库操作,可以进行增删改查,实现回收站,隐私照片功能 SharedPreferences存储地址:
  • gunicorn工作原理
  • 第二十章:异步和文件I/O.(二十三)
  • ​DB-Engines 11月数据库排名:PostgreSQL坐稳同期涨幅榜冠军宝座
  • ​LeetCode解法汇总2696. 删除子串后的字符串最小长度
  • (003)SlickEdit Unity的补全
  • (16)UiBot:智能化软件机器人(以头歌抓取课程数据为例)
  • (2/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序
  • (52)只出现一次的数字III
  • (Forward) Music Player: From UI Proposal to Code
  • (PWM呼吸灯)合泰开发板HT66F2390-----点灯大师
  • (Python第六天)文件处理
  • (八)Docker网络跨主机通讯vxlan和vlan
  • (办公)springboot配置aop处理请求.
  • (编程语言界的丐帮 C#).NET MD5 HASH 哈希 加密 与JAVA 互通
  • (第61天)多租户架构(CDB/PDB)
  • (解决办法)ASP.NET导出Excel,打开时提示“您尝试打开文件'XXX.xls'的格式与文件扩展名指定文件不一致