#、%和$符号在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>

</validators>

Struts 2中#、%和$符号的相应用途相关推荐

  1. cad中直径符号不显示_【技巧】大神在CAD、Word里敲出和快速绘图的小秘密!(内附cad快捷键大全)...

    很多朋友在办公过程中可能会根据工作的需求需要输入直径符号,但是却不知道直径符号怎么打. 今天就来教大家如何用键盘打出直径符号. 还有整理的CAD快捷键和命令大全~ 一 word中直径符号怎么打? 1. ...

  2. 为什么MIPS处理器的数据通路中需要符号扩展单元和左移2位?

    此博客为个人博客,不涉及商业用途,仅提供学习参考,内容均来自个人原创以及互联网转载和摘录. 此博客上带有原创标识的文章.图片.文件等,未经本人允许,不得用于商业用途以及传统媒体. 本文首发于CSDN, ...

  3. NestJS 中,@ 符号是有什么含义

    在 NestJS 中,@ 符号通常用于装饰器(decorators),这是一种特殊的语法,用于向类.方法或 属性添加元数据.装饰器可以用于许多不同的用途,例如定义控制器.路由.中间件.管道.拦截器等. ...

  4. CRM User Status profile中Business Transaction字段的用途

    有朋友问到User Status profile中Business Transaction字段的用途,如下图INPR, FINI所示. 实际上,这个字段作为一个桥梁,连接了User Status和Sy ...

  5. CRM User Status profile中Business Transaction字段的用途 1

    有朋友问到User Status profile中Business Transaction字段的用途,如下图INPR, FINI所示. 实际上,这个字段作为一个桥梁,连接了User Status和Sy ...

  6. c语言全局变量符号,C语言中的 @ 符号是什么意思?

    标签:assign   inter   res   ted   访问内存   变量   出现   read_only   his Global Variable Address Modifier (@ ...

  7. alt+数字 符号大全_【BIM工具箱】Revit中特殊符号大全和输入技巧

    Revit在出图或创建族文件的过程中,经常需要输入一些特殊符号(比如:角度.正负号.立方.平方等),很多人不知道要如何输入这些符号.这些符号可以通过键盘上的AIT键+数字小键盘实现,按住键盘ALT按键 ...

  8. Linux的nm查看动态和静态库中的符号

    功能 列出.o .a .so中的符号信息,包括诸如符号的值,符号类型及符号名称等.所谓符号,通常指定义出的函数,全局变量等等. 使用 nm [option(s)] [file(s)] 有用的optio ...

  9. Lodop中特殊符号¥打印设计和预览不同

    Lodop中¥符号样式改变问题 Lodop中对超文本样式的解析,虽然说是按照调用的本机ie引擎,但是调用的ie版本可能不同,导致在ie下是一种样式,预览又是另一种样式.可能是有些样式没有具体设置,走的 ...

最新文章

  1. GlusterFS下如何修复裂脑文件?(续一)
  2. 算法-----------乘积最大子数组(Java版本)
  3. C#各个版本中的新增特性详解
  4. java 排序原理_简单选择排序算法原理及java实现(超详细)
  5. 秋高气爽FreeEIM
  6. RT-thread内核之对象管理系统
  7. 记模拟面试日记(更新...)
  8. 分布式保存Session 和 StateServer 解决 Session过期
  9. 听听别人怎么说:VueJS 与 ReactJS
  10. 随机获取4位26个英文字母和数字组合的值(4位随机码)
  11. excel表格锁定怎么解锁_让用户锁定或解锁Excel工作簿
  12. python 按照四个点的坐标裁剪不规则四边形
  13. RGB接口屏和SPI接口屏的引脚
  14. 论文阅读 (58):Research and Implementation of Global Path Planning for Unmanned Surface Vehicle Based...
  15. Python软件编程等级考试三级——20210905
  16. Vue文件上传、下载
  17. Offner光学成像系统
  18. 应对大厂面试,我是如何学会React Hooks的
  19. MTK 平台CTP bring up
  20. 实用篇 | 简单的可快速搭建的个人网站方式及工作原理

热门文章

  1. jQuery - 设置内容和属性
  2. Visual Studio 创建封装自己的代码段(C#)
  3. 什么是防火墙,真正意义上的防火墙
  4. 高效率开发必备!!!!
  5. Eclipse开发struts完全指南
  6. html css百分比效果,css百分比不起作用是什么原因?
  7. es6 ik分词热更新MySQL_rollup环境搭建(es6转es5、压缩、本地服务器、热更新)
  8. java awt 监视器_java – 停止所有Awt / Swing线程和监视器和东...
  9. Python知识点8——文件与异常
  10. 记录一下水下相机标定