`

转:struts2中 # % $ 的区别和用法

阅读更多

转自:http://hi.baidu.com/golotus/blog/item/82e7ded4cf631807a08bb77f.html/cmtid/e3de75a46a9a11fb9152ee3e

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


表达式语言主要有以下几大好处:  
  
   1. 避免(MyType) request.getAttribute()和myBean.getMyProperty()之类的语句,使页面更简洁;  
   2. 支持运算符(如+-*/),比普通的标志具有更高的自由度和更强的功能;  
   3. 简单明了地表达代码逻辑,使用代码更可读与便于维护。


Struts2 中OGNL表达式的用法:

OGNL(Object-Graph Navigation Language),可以方便地操作对象属性的开源表达式语言;

“#” 主要有三种用途:  
  
   1. 访问OGNL上下文和Action上下文,#相当于ActionContext.getContext();下表有几个ActionContext中有用 的属性:  
       名称   作用 例子  
      parameters    包含当前HTTP请求参数的Map    #parameters.id[0]作用相当于request.getParameter("id")  
      request   包含当前HttpServletRequest的属性(attribute)的Map    #request.userName相当于request.getAttribute("userName")  
      session   包含当前HttpSession的属性(attribute)的Map   #session.userName相当于session.getAttribute("userName")  
      application   包含当前应用的ServletContext的属性(attribute)的Map     #application.userName相当于application.getAttribute("userName")  
      attr 用于按request > session > application顺序访问其属性(attribute)    #attr.userName相当于按顺序在以上三个范围(scope)内读取userName属性,直到找到为止  
   2. 用于过滤和投影(projecting)集合,如books.{?#this.price<100};  
   3. 构造Map,如#{'foo1':'bar1', 'foo2':'bar2'}。  


“%” 的用途是在标志的属性为字符串类型时,计算OGNL表 达式的值。例如在Ognl.jsp中加入以下代码:  
<hr />  
    <h3>%的用途</h3>  
    <p><s:url value="#foobar['foo1']" /></p>  
    <p><s:url value="%{#foobar['foo1']}" /></p>  


“$” 有两个主要的用途 :    
   1. 用于在国际化资源文件中,引用OGNL表达式,例子请参考《在Struts 2.0中国际化(i18n)您的应用程序》  
   2. 在Struts 2配置文件中,引用OGNL表达式,如  
      <action name="AddPhoto" class="addPhoto">  
                  <interceptor-ref name="fileUploadStack" />              
                  <result type="redirect">ListPhotos.action?albumId=${albumId}</result>  
              </action>

分享到:
评论

相关推荐

    struts2.0标签$ # %的区别

    本文将详细介绍Struts2.0标签库中 `$`, `#`, `%` 的使用方法及其区别。 #### 二、Struts2.0 标签概述 ##### 1. 通用标签 - **Property** - 用于展示数据栈中的数据。 - 支持默认值设置。 - 可以控制HTML转义。...

    #和$的区别

    综上所述,了解Struts2框架中OGNL表达式的用法及其区别对于开发高质量的Web应用程序至关重要。“#”、“$”和“%”符号在不同的场景下发挥着各自独特的作用,合理运用这些符号能够显著提升应用程序的性能和用户体验...

    % # $ 的区别 及用法

    ### `% # $`的区别及用法 在Struts2框架中,`%`, `#`, `$` 这三...通过以上分析,我们可以看出 `%`, `#`, `$` 这三个符号在Struts2中的应用场景各有不同,合理选择和使用这些符号可以帮助开发者更高效地完成开发任务。

    转:struts1与struts2的区别

    - **Struts2**: 在Struts2中,可以通过初始化、设置属性和调用方法等方式轻松地测试Action。依赖注入的支持进一步简化了测试过程,使开发者能够更加专注于逻辑验证而非环境配置。 #### 5. 输入数据的处理方式 - **...

    struts2中#号的用法

    本文将详细介绍`#`符号的使用方法及其应用场景,帮助读者更好地理解和掌握Struts2框架的相关知识。 #### 一、Struts2简介 Struts2是基于Struts1的基础上发展起来的一款开源Web应用框架,它使用MVC(Model-View-...

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

    ### OGNL中的#、%和$符号用法说明 #### 概述 OGNL(Object-Graph Navigation Language)是一种强大的表达式语言,用于获取和设置Java对象的属性。它在许多Java应用框架中得到了广泛应用,尤其是在Struts2中作为...

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

    总的来说,理解并熟练掌握`#`、`%`和`$`在Struts2和OGNL中的用法,对于有效利用Struts2框架进行开发至关重要。这不仅可以帮助你更好地组织和控制应用程序的行为,还能提高代码的可读性和维护性。在实践中,还需要...

    struts1和struts2的区别

    ### Struts1与Struts2的主要区别 #### 概述 Apache Struts 是一个用于构建企业级Java Web应用的开源框架。它分为两个版本:Struts1 和 Struts2。虽然两者都基于模型-视图-控制器(MVC)设计模式,但它们之间存在...

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

    根据提供的文件信息,我们可以深入探讨OGNL(Object-Graph Navigation Language)表达式中涉及的关键符号:#、% 和 $ 的具体用法与应用场景。 ### 一、符号“#”的应用 在OGNL表达式中,“#”这个符号主要用于访问...

    struts1和struts2的区别(详细)

    ### Struts1与Struts2的主要区别 #### 一、Action执行机制的不同 - **Struts1**: 在Struts1框架中,Action是基于单例模式的,这意味着所有的请求都会共享同一个Action实例。这就导致了如果在Action中保存实例变量...

    研磨Struts2

    #### 16.2 在Struts2中使用Ajax - **JSON数据格式**:通过Action返回JSON格式的数据。 - **异步请求**:使用jQuery等JavaScript库来发送异步请求。 以上就是关于“研磨Struts2”的主要知识点梳理,通过深入学习...

    程序员必看的书籍Struts1和Struts2的区别

    - **学习资源**:对于初学者来说,可以通过官方文档、在线教程和实战项目来深入学习Struts1和Struts2的使用方法和最佳实践。 - **持续关注技术更新**:虽然Struts2相比Struts1有了很大的改进,但随着技术的发展,还...

    struts2 标签使用

    通过以上几个示例,我们可以看到 `&lt;s:if&gt;` 标签在 Struts2 中的应用是非常灵活和强大的。它可以用来实现各种复杂的逻辑判断,如数值比较、字符串匹配等。此外,结合其他标签如 `&lt;s:iterator&gt;`,可以实现更复杂的逻辑...

    Struts2 $,#,%详解及实例代码

    在Java Web开发领域,Struts2是一个非常流行的MVC框架,它帮助开发者构建动态、数据驱动的Web应用程序。在Struts2中,`$`, `#`, `%`这三...理解这些符号的用法,可以帮助开发者更有效地在Struts2应用中管理和访问数据。

    struts2中文学习文档

    从给定的文件信息来看,标题“struts2中文学习文档”和描述“struts2的根本webwork2”表明这是一份关于Struts2框架的学习资料,特别强调了Struts2与WebWork2的关系。Struts2是Apache Struts的一个版本,它是一个用于...

    轻量级_J2EE_企业应用实战:Struts%2BSpring%2BHibernate_整合开发.pdf

    ### 轻量级J2EE企业应用实战:Struts + Spring + Hibernate整合开发 #### 概述 本文深入探讨了轻量级...通过深入理解并熟练掌握这些框架的特性和使用方法,开发者可以构建出更加健壮、灵活和易于维护的企业级应用。

    struts2 ognl的用法

    ### Struts2中OGNL的使用详解 #### 一、OGNL简介 OGNL(Object-Graph Navigation Language)是一种强大的表达式语言,用于获取或设置一个对象图中的属性。它在Struts2框架中扮演着极其重要的角色,是Struts2实现...

    struts2-json-plugin-2.3.24-API文档-中文版.zip

    赠送jar包:struts2-json-plugin-2.3.24.jar; 赠送原API文档:struts2-json-plugin-2.3.24-javadoc.jar; 赠送源代码:struts2-json-...人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。

    STRUTS2标签中符号_,$,%的用法示例.doc

    - **访问非根对象属性**:在STRUTS2中,ActionContext是默认的根对象,但如果你需要访问像Session这样的非根对象,你需要使用`#`前缀。例如,`#session.msg`表示获取ActionContext的Session属性中的'msg'键的值,...

Global site tag (gtag.js) - Google Analytics