`
一日一博
  • 浏览: 230467 次
  • 性别: 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中的#、%和$符号用法说明

    然而,在Struts2的配置文件中,`$`通常不单独使用,而是与`{}`结合,形成`${expression}`这样的结构,用于在XML配置中嵌入OGNL表达式。例如,`${user.name}" /&gt;`将显示`user`对象的`name`属性的值。 在提供的文件...

    OGNL中的#、%和$符号用法说明

    它在许多Java应用框架中得到了广泛应用,尤其是在Struts2中作为默认的表达式语言。OGNL中的`#`、`%`和`$`符号各有其独特的功能和应用场景,对于理解和熟练使用这些符号至关重要。 #### #符号的用途 1. **访问根...

    OGNL表达式中的#、%和$.txt

    “$”符号在Struts2中主要用作OGNL表达式的起始标记,在模板文件(如JSP页面)中,它用于指示Struts2框架应该解析为OGNL表达式。 1. **模板文件中的应用**: - 示例:`reg.ageRange = $ {min} 到 $ {max}` - 解释...

    Struts2 使用OGNL表达式

    以下是一些关于Struts2中OGNL表达式的关键知识点: 1. **基础语法**:OGNL表达式的格式通常为`object.property`或`object[index]`,用于访问对象的属性或数组/集合的元素。例如,`user.name`将获取名为`user`的对象...

    struts2-OGNL表达式测试

    在“struts2-OGNL表达式测试”中,你可能会看到各种OGNL表达式的使用示例,比如访问和修改对象属性、动态调用方法、处理集合和执行条件判断等。通过这些测试,你可以更好地理解和掌握OGNL在实际开发中的运用,确保在...

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

    在Struts2中,OGNL被广泛用于视图层和控制器层之间的数据传递,以及动态方法调用。 一、OGNL基本语法 1. 访问对象属性:`对象名.属性名`。例如,`person.name` 将访问person对象的name属性。 2. 数组和集合访问:...

    Struts2 如何使用OGNL表达式(三十八)

    本文将深入探讨如何在Struts2中有效地使用OGNL表达式。 首先,OGNL是Struts2的核心组成部分,它允许开发者在Action类和JSP页面之间灵活地传递和访问数据。在Action类中,你可以设置属性,然后在JSP页面上通过OGNL...

    ognl表达式 ognl表达式

    在Struts2中,OGNL的核心组件之一是`ValueStack`,它充当了OGNL表达式的数据源。`ValueStack`是一个存储数据的栈结构,包含了所有的模型对象以及请求、会话和应用范围的数据。开发者可以通过EL表达式直接访问`...

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

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

    精通struts2的ognl表达式

    ### 精通Struts2中的OGNL表达式 在深入探讨Struts2框架的核心功能时,理解并熟练掌握OGNL(Object-Graph Navigation Language)表达式的应用是至关重要的一步。OGNL是一种强大的表达式语言,它允许开发者通过简洁、...

    struts2 OGNL表达式

    在Struts2中,OGNL被用作默认的表达式语言,用于在Action类和JSP页面之间传递数据,以及在Action上下文中进行动态方法调用。 在Struts2的配置文件中,如struts.xml或struts.properties,你可以看到OGNL表达式的使用...

    struts2 ognl表达式

    在Struts2中,OGNL表达式可以嵌入到各种基本标签中,如`s:textfield`, `s:property`, `s:action`等,以实现动态的数据展示和交互。例如,`&lt;s:property value="%{#session.user.name}" /&gt;`会将session中user对象的...

    OGNL表达式

    - **#**:通常用于表示OGNL表达式,在Struts2中作为OGNL表达式的开头标记。 - **%**:用于指定JSP页面的编码格式,如`&lt;%@ page language="java" contentType="text/html;charset=utf-8" pageEncoding="utf-8" %&gt;`。 ...

    Struts2的标签库及OGNL表达式语言

    本篇文章将详细探讨Struts2中的OGNL表达式语言以及标签库。 **OGNL(对象图导航语言)** OGNL是一种强大的表达式语言,它允许开发者通过简洁的语法来访问和操作对象的属性。在Struts2框架中,OGNL扮演着至关重要的...

    JS:ognl表达式

    ### JS:ognl表达式详解 #### 一、OGNL表达式概述 OGNL (Object-Graph Navigation Language) 是一种强大的表达式语言,用于获取和设置 Java 对象的属性。它最初是由 John Rose 和 Luke Blanshard 开发,并被广泛...

    struts2 OGNL表达式使用

    下面是OGNL表达式的使用方法: 访问基本属性 1. 访问值栈中action的普通属性: 2. 访问值栈中对象的普通属性: 3. 访问值栈中对象(对象包含对象)的普通属性: 4. 访问值栈中对象的普通方法:().length()"/&gt; 5. ...

    Struts2深入学习----OGNL表达式原理

    在Struts2中,OGNL不仅用于数据获取,还支持方法调用。你可以直接在表达式中调用对象的方法,如`user.login()`,这将在运行时执行`login()`方法。 除了基本操作,OGNL还提供了许多高级特性,如条件表达式(`#{...

    struts2 OGNL 表达式及各种标签的使用

    本文将深入探讨OGNL的基本用法、标签的使用以及其在Struts2中的实际应用。 1. **OGNL基本概念** - OGNL是一种表达式语言,用于获取和设置对象属性。它支持点号和索引访问、方法调用、运算符、集合操作等。 - 例如...

    % # $ 的区别 及用法

    在Struts2中,`%` 主要用于表达式语言(EL)中的特殊用途,尤其是在处理OGNL表达式时。它主要用于处理HTML标签内的OGNL表达式。具体来说: - **用法**:`%{expression}` 表示一个OGNL表达式的计算结果。这个表达式...

    struts2中的OGNL的源码

    其中,OGNL(Object-Graph Navigation Language)是Struts2中的核心表达语言,用于在视图层与模型层之间传递数据。在深入理解OGNL的源码之前,我们首先需要了解OGNL的基本概念和用法。 OGNL是一种强大的表达式语言...

Global site tag (gtag.js) - Google Analytics