`
一日一博
  • 浏览: 226805 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

Struts2之OGNL表达式中#,$,%的用法区别

阅读更多
struts2 井号,星号,百分号

“#”主要有三种用途:

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内读取属性,直到找到为止

<select id="rolelist" name="filter_EQL_dept.id" style="width: 150px;" class="input2">
      <option value="">--请选择--</option>
   <s:iterator value="listDepts">
      <option value="<s:property value='id'/>"
<s:property value='#parameters["filter_EQL_dept.id"][0] == id ? "selected":""'/>>
         <s:property value='deptname'/>
      </option>
</s:iterator>
</select>


2. 用于过滤和投影(projecting)集合,如books.{?#this.price<100}; 

3. 构造Map,如#{'foo1':'bar1', 'foo2':'bar2'},在select和radio标签中经常用到。


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


<s:url value="%{#foobar['foo1']}" />




“$”有两个主要的用途

1. 用于在国际化资源文件中,引用OGNL表达式。
2. EL表达式 ${sessionScope.user.sex}等于${sessionScope.user["sex"]}
   一样的,如果是${username}没有指定scope那么查找顺序是Page---Request---Session---Application
3. 在Struts 2配置文件中,引用OGNL表达式,如:


<action name="downloadCaseFile" class="com.business.action.DownloadFileAction">
   <result type="stream">
      <param name="contentType">${contentType}</param>
      <param name="contentLength">${contentLength}</param>
      <param name="contentDisposition">attachment;filename="${filename}"</param>
      <param name="inputName">fileStream</param>
      <param name="bufferSize">4096</param>
   </result>
</action>
分享到:
评论

相关推荐

    struts2_OGNL表达式ActionContext及valuesStack

    struts2 OGNL,struts2 表达式语言,Struts2 中OGNL表达式的用法,Struts2 #,表达式语言的好处,Struts2 $,struts2 井号,星号,百分号

    ognl表达式java使用案例详解(测试通过)

    本案例提供ognl使用详解,测试通过,只需解压放入自己WEB项目中,执行struts_ognl包内java文件即可(未提供jia包,若需要可以联系留言发至邮箱),若测试不好可以联系本人提供指导. Struts 2默认的表达式语言是OGNL...

    struts2 ognl表达式

    struts2中ognl表达式的用法,详细介绍了ognl表达式与struts2基本标签的结合。

    精通struts2的ognl表达式

    最近的项目开发中使用了struts2的框架,但是好多人都不清楚struts2的标签的具体的用法,要想完全掌握struts2标签的用法,那么你必须先精通了struts2中OGNL的用法。struts2中很多东西其实理解就行,但是惟独OGNL虽然...

    struts2中ognl表达式的理解和用法

    NULL 博文链接:https://laz383310051.iteye.com/blog/754884

    OGNL表达式

    ognl表达式在struts中的用法解析

    OGNL表达式语言.txt

    OGNL表达式语言: 相对EL表达式,它提供了平时我们需要的一些功能,如: ? 支持对象的方法调用 ,如 xxx.sayHello(); ? 支持类静态方法调用和值的访问,表达式的格式为@[类全名]@[方法名|值名],例如:@java....

    STRUTS2.1z中的OGNL的表达式

    主要介绍struts2.1 中的ognl中的表达式的用法

    Struts2核心包

    Struts2最新版本2.2.1中所设计的核心库文件,包括以下内容: struts2-core-2.2.1.jar:Struts2框架的核心类库。 xwork-core-2.2.1.jar:Xwork核心类库,Struts2在其上构建。 ognl-3.0.jar:对象图导航语言(Object ...

    struts2中ognl的源代码

    OGNL是Object-Graph Navigation Language的缩写,它是一种功能强大的表达式语言(Expression Language,简称为EL),通过它简单一致的表达式语法,可以存取对象的任意属性,调用对象的方法,遍历整个对象的结构图,...

    struts2下ognl源代码

    OGNL是Object-Graph Navigation Language的缩写,它是一种功能强大的表达式语言(Expression Language,简称为EL),通过它简单一致的表达式语法,可以存取对象的任意属性,调用对象的方法,遍历整个对象的结构图,...

    Java开发技术

    struts2 中 OGNL表达式的使用 GNL是Object Graph Navigation Language的简称,详细相关的信息可以参考:http://www.ognl.org。这里我们只涉及Struts2框架中对OGNL的基本支持。 Struts 2默认的表达式语言是OGNL,...

    Struts2+Spring+Hibernate3.2+整合文档及事例程序.zip

    properties文件即i18n国际化多国语言版的用法,struts2前台校验,对输入的数据进行验证validators struts2 OGNL 表达式详解 struts2 #,*,%

    Struts2+hibernate+spring的常见面试题

    1、什么是Struts2 Apache Struts2的是一个在Java中构建Web应用程序... Struts2中自带了很多的标签,并使用OGNL表达式语言。我们可以创造我们自己的类型转换器来呈现的结果页面。结果页面可以JSP和FreeMarker的模板。

    struts2传参

    struts2中使用ognl表达式语言传参的方法,简化操作,通过jsp页面传递到Action中

    Struts2 in action中文版

    9.1 为什么在Struts 2中使用Spring 196 9.1.1 依赖注入能做些什么 197 9.1.2 Spring如何管理对象和注入依赖 199 9.1.3 使用接口隐藏实现 200 9.2 将Spring添加到Struts 2 202 9.2.1 让Spring管理动作、拦截器和结果...

    Struts 2.1.8_学习源码

    Struts2_03Taglib : Struts2常用标签的使用方法 Struts2默认支持OGNL、JSTL、Groovy和Velcity表达式 Struts2_04ActionResultType : Struts2关于Action跳转类型的应用 对各种不同的跳转类型使用的实例 Struts2_05...

    struts2 详解文档

    介绍Struts 2及Struts 2开发环境的搭建 第一个Struts 2应用开发 解决Struts 2配置文件无提示问题 Action名称的搜索顺序 Action配置的各项默认值 result配置的各种视图转发类型 为Action属性注入值 指定...

    Struts2 国际化字符串 拦截器

    文件的国际化字符串中使用OGNL,格式为${表达式},例如: validation.required=${getText(fileName)} is required 2. 使用java.text.MessageFormat中的字符串格式,格式为{ 参数序号(从0开始), 格式类形(number |...

    struts2讲义_吴峻申

    5.2 OGNL表达式语言介绍 75 5.3 Struts2控制标签简介 79 5.3.1 append标签使用介绍 79 5.3.2 generator标签使用介绍 80 5.3.3 if、else、elseif标签使用介绍 81 5.3.4 iterator标签使用介绍 82 5.3.5 merge标签使用...

Global site tag (gtag.js) - Google Analytics