1.“#”主要有三种用途:
  • 访问OGNL上下文和Action上下文,#相当于ActionContext.getContext();可以访问这几个ActionContext中的属性。
parameters
#parameters.id[0]作用相当于request.getParameter("id")
request
#request.userName相当于request.getAttribute("userName")
session
#session.userName相当于session.getAttribute("userName")
application
#application.userName相当于application.getAttribute("userName")
attr按request > session > application顺序
#attr.userName相当于按顺序在以上三个scope内读取属性,直到找到为止
  • 用于过滤和投影(projecting)集合,如books.{?#this.price<100}。
  • 构造Map,如#{'foo1':'bar1', 'foo2':'bar2'},在select和radio标签中经常用到。

2.“%”的用途是在标志的属性为字符串类型时,计算OGNL表达式的值。 如:

 在Action中加入
//省略set/get
private Map<String,String> testmap=new HashMap<String,String>(); 在execute中加入:
//ActionContext中的testmap
testmap.put("mp1", "vsmap1");
testmap.put("mp2", "vsmap2");
testmap.put("mp3", "vsmap3");
testmap.put("mp4", "vsmap5555"); 在结果页面加入: 遍历actionContext中的testmap<p>
<s:iterator value="testmap">
<s:property value="key"/>=<s:property value="value" /><br>
</s:iterator> <h3>-----------------s:property--------------------------%的用途</h3> //property 有没%号都一样。解析为value值
<p>用点号. :<s:property value="testmap.mp1"/></p>
<p>用方括号[] :<s:property value="testmap['mp1']"/></p>
<p>有%号:<s:property value="%{testmap['mp1']}" /></p> <h3>-----------------s:url--------------------------%的用途</h3>
<p>用点号. :<s:url value="testmap.mp1"/></p>
<p>用方括号[] :<s:url value="testmap['mp1']"/></p> //直接显示为testmap['mp1']
<p>有%号:<s:url value="%{testmap['mp1']}" /></p>

结果如下:

3.“$”有两个主要的用途

  • 用于在国际化资源文件中,引用OGNL表达式。
  • EL表达式 ${sessionScope.user.sex}等于${sessionScope.user["sex"]} 。

如果没有指定scope,那么${username}查找顺序是Page---Request---Session---Application

struts2 OGNL(Object-Graph Navigation Language) 井号,星号,百分号的更多相关文章

  1. Struts_OGNL(Object Graph Navigation Language) 对象图导航语言

    1.访问值栈中的action的普通属性: 请求: <a href="ognl.action?username=u&password=p">访问属性</a& ...

  2. OGNL是Object-Graph Navigation Language的缩写,它是一种功能强大的表达式语言

    OGNL是Object-Graph Navigation Language的缩写,它是一种功能强大的表达式语言(ExpressionLanguage,简称为EL),通过它简单一致的表达式语法,可以存取 ...

  3. OGNL(Object-Graph Navigation Language),可以方便地操作对象属性的开源表达式语言,使页面更简洁;

    OGNL(Object-Graph Navigation Language),可以方便地操作对象属性的开源表达式语言,使页面更简洁: 支持运算符(如+-*/),比普通的标志具有更高的自由度和更强的功能 ...

  4. Struts2 OGNL使用详解(转)

    OGNL OGNL ( Object Graph Navigation Language ),对象图导航语言.这是一种强大的表达式语言,通过它可以非常方便的来操作对象属性. 在 Struts2 中,O ...

  5. 【Java EE 学习 36】【struts2】【struts2系统验证】【struts2 ognl值栈】【struts2 ongl标签】【struts2 UI标签】【struts2模型驱动和令牌机制】

    一.struts2系统验证 1.基于struts2系统验证的方式实际上就是通过配置xml文件的方式达到验证的目的. 2.实际上系统校验的方法和手工校验的方法在底层的基本实现是相同的.但是使用系统校验的 ...

  6. struts2 OGNL表达式

    一.OGNL OGNL是Object-Graph Navigation Language的缩写,全称为对象图导航语言,是一种功能强大的表达式语言,它通过简单一致的语法,可以任意存取对象的属性或者调用对 ...

  7. java:struts框架5(Converter,Validation,Tags(Object-Graph Navigation Language))

    1.Converter: struts.xml: <?xml version="1.0" encoding="UTF-8"?> <!DOCTY ...

  8. Struts2(Ognl)

    OGNL(Object-Graph Navigation Language)全称为对象图导航语言,是一种功能强大的表达式语言,它通过简单一致的语法,可以任意存取对象的属性或者调用对象的方法,能够遍历整 ...

  9. struts2 OGNL 表达式

    一.Struts 2支持以下几种表达式语言: OGNL(Object-Graph Navigation Language),可以方便地操作对象属性的开源表达式语言:JSTL(JSP Standard ...

随机推荐

  1. iOS 触摸事件与手势识别器(Gesture Recognizers)

    Gesture Recognizers与触摸事件分发 通过一个问题引出今天的知识: 1.大家应该都遇见过 当需要给tableView 添加一个tap 手势识别 但是tableView 的上的事件(滑动 ...

  2. EventHandler 与常见的.Net预定义委托

    看着下面这两句事件定义及激发忽然有点不明白了, public event EventHandler<ExternalDataEventArgs> Submit; Submit(null, ...

  3. web基础----->jersey整合jetty开发restful应用(一)

    这里介绍一个jersey与jetty整合开发restful应用的知识.将过去和羁绊全部丢弃,不要吝惜那为了梦想流下的泪水. jersey与jetty的整合 一.创建一个maven项目,pom.xml的 ...

  4. 【大数据系列】hadoop集群设置官方文档翻译

    Hadoop Cluster Setup Purpose Prerequisites Installation Configuring Hadoop in Non-Secure Mode Config ...

  5. GoldenGate的监控

    1.进入GoldenGate安装目录,运行GGSCI,然后使用info all查看整体的运行状况 GGSCI (aix212) 1> info all Program Status Group ...

  6. vuex报错: [vuex] Expects string as the type, but found undefined.

    报错如图 检查了好久,发现 import * as types from '../mutation-types'const actions = { add({commit}){ commit(type ...

  7. magent实现memcached集群的一个问题

    之前我们小组封装了一个memcached类库,里面有一个名为RemoveStartWith的方法可以根据起始字符串删除所有节点中负责键值规则的缓存项.它实现的原理就是通过stats命令获取每个节点的所 ...

  8. zabbix配置server,proxy,agent架构

    author: headsen  chen date:2018-10-30  19:49:50 环境: centos 6.8_x86_64 zabbix-server: 192.168.1.130 z ...

  9. TX失败策略2

    自从有了人类,就有了智慧和精神.但总有一些思想家跳出来说人定胜天的理论,这是一种严重的误导.人类社会和自然界一样,遵守统一的自然定律.人就像不能改变物理定律一样改社会定律.更不可能因片面的社会现象遮盖 ...

  10. python WEB UI自动化在日期框中动态输入当前日期

    要在日期框中输入当前日期,如下图 代码为 本想用最简单的方法,直接用sendkeys发送当前日期,如下: current_time=time.strftime('%Y-%m-%d',time.loca ...