Struts 2中#、%和$符号的相应用途
#、%和$符号在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中#、%和$符号的相应用途相关推荐
- cad中直径符号不显示_【技巧】大神在CAD、Word里敲出和快速绘图的小秘密!(内附cad快捷键大全)...
很多朋友在办公过程中可能会根据工作的需求需要输入直径符号,但是却不知道直径符号怎么打. 今天就来教大家如何用键盘打出直径符号. 还有整理的CAD快捷键和命令大全~ 一 word中直径符号怎么打? 1. ...
- 为什么MIPS处理器的数据通路中需要符号扩展单元和左移2位?
此博客为个人博客,不涉及商业用途,仅提供学习参考,内容均来自个人原创以及互联网转载和摘录. 此博客上带有原创标识的文章.图片.文件等,未经本人允许,不得用于商业用途以及传统媒体. 本文首发于CSDN, ...
- NestJS 中,@ 符号是有什么含义
在 NestJS 中,@ 符号通常用于装饰器(decorators),这是一种特殊的语法,用于向类.方法或 属性添加元数据.装饰器可以用于许多不同的用途,例如定义控制器.路由.中间件.管道.拦截器等. ...
- CRM User Status profile中Business Transaction字段的用途
有朋友问到User Status profile中Business Transaction字段的用途,如下图INPR, FINI所示. 实际上,这个字段作为一个桥梁,连接了User Status和Sy ...
- CRM User Status profile中Business Transaction字段的用途 1
有朋友问到User Status profile中Business Transaction字段的用途,如下图INPR, FINI所示. 实际上,这个字段作为一个桥梁,连接了User Status和Sy ...
- c语言全局变量符号,C语言中的 @ 符号是什么意思?
标签:assign inter res ted 访问内存 变量 出现 read_only his Global Variable Address Modifier (@ ...
- alt+数字 符号大全_【BIM工具箱】Revit中特殊符号大全和输入技巧
Revit在出图或创建族文件的过程中,经常需要输入一些特殊符号(比如:角度.正负号.立方.平方等),很多人不知道要如何输入这些符号.这些符号可以通过键盘上的AIT键+数字小键盘实现,按住键盘ALT按键 ...
- Linux的nm查看动态和静态库中的符号
功能 列出.o .a .so中的符号信息,包括诸如符号的值,符号类型及符号名称等.所谓符号,通常指定义出的函数,全局变量等等. 使用 nm [option(s)] [file(s)] 有用的optio ...
- Lodop中特殊符号¥打印设计和预览不同
Lodop中¥符号样式改变问题 Lodop中对超文本样式的解析,虽然说是按照调用的本机ie引擎,但是调用的ie版本可能不同,导致在ie下是一种样式,预览又是另一种样式.可能是有些样式没有具体设置,走的 ...
最新文章
- GlusterFS下如何修复裂脑文件?(续一)
- 算法-----------乘积最大子数组(Java版本)
- C#各个版本中的新增特性详解
- java 排序原理_简单选择排序算法原理及java实现(超详细)
- 秋高气爽FreeEIM
- RT-thread内核之对象管理系统
- 记模拟面试日记(更新...)
- 分布式保存Session 和 StateServer 解决 Session过期
- 听听别人怎么说:VueJS 与 ReactJS
- 随机获取4位26个英文字母和数字组合的值(4位随机码)
- excel表格锁定怎么解锁_让用户锁定或解锁Excel工作簿
- python 按照四个点的坐标裁剪不规则四边形
- RGB接口屏和SPI接口屏的引脚
- 论文阅读 (58):Research and Implementation of Global Path Planning for Unmanned Surface Vehicle Based...
- Python软件编程等级考试三级——20210905
- Vue文件上传、下载
- Offner光学成像系统
- 应对大厂面试,我是如何学会React Hooks的
- MTK 平台CTP bring up
- 实用篇 | 简单的可快速搭建的个人网站方式及工作原理
热门文章
- jQuery - 设置内容和属性
- Visual Studio 创建封装自己的代码段(C#)
- 什么是防火墙,真正意义上的防火墙
- 高效率开发必备!!!!
- Eclipse开发struts完全指南
- html css百分比效果,css百分比不起作用是什么原因?
- es6 ik分词热更新MySQL_rollup环境搭建(es6转es5、压缩、本地服务器、热更新)
- java awt 监视器_java – 停止所有Awt / Swing线程和监视器和东...
- Python知识点8——文件与异常
- 记录一下水下相机标定