`

转: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 ognl中的#、%和$符号用法说明

    NULL 博文链接:https://hezhou-0521.iteye.com/blog/777463

    struts2中#号的用法

    如果对象是当前页面的,则要使用# 1. &lt;s:bean id="locales" name="com.turorial.Locales" &gt;...&lt;/s:bean&gt; &lt;s:property value="#locales"/&gt;

    Struts1与Struts2本质区别

    3 Servlet依赖方面的对比:Struts 1 Action依赖于Servlet API,因为Struts 1 Action的execute方法中有HttpServletRequest和HttpServletResponse方法。Struts 2 Action不再依赖于Servlet API,从而允许Action脱离Web...

    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核心包

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

    搞定J2EE:STRUTS+SPRING+HIBERNATE整合详解与典型案例 (1)

    6.3 Log4j的使用方法 6.3.1 配置Log4j 6.3.2 配置根Logger 6.3.3 指定日志输出位置 6.3.4 指定日志输出格式 6.3.5 指定日志输出优先级 6.3.6 在代码中使用Log4j 6.4 改进Log4j 6.5 小结 第七章 Ant使用指南 7.1 Ant...

    struts1和struts2的区别

    最后,和Struts1.x最大的革命性的不同是,Struts2处理Action过程中调用的方法(“execute”方法)是不带参数的。那如何获取所需要的对象呢?答案是使用IoC(反转控制,Inversion of Control),也叫“依赖注入...

    Struts 2.1.8_学习源码

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

    struts2标签使用方法

    Struts2 标签使用方法 Struts2 标签库提供了主题、模板支持,极大地简化了视图页面的编写,而且,Struts2 的主题、模板都提供了很好的扩展性。Struts2 允许在页面中使用自定义组件,这完全能满足项目中页面显示复杂...

    搞定J2EE:STRUTS+SPRING+HIBERNATE整合详解与典型案例 (3)

    6.3 Log4j的使用方法 6.3.1 配置Log4j 6.3.2 配置根Logger 6.3.3 指定日志输出位置 6.3.4 指定日志输出格式 6.3.5 指定日志输出优先级 6.3.6 在代码中使用Log4j 6.4 改进Log4j 6.5 小结 第七章 Ant使用指南 7.1 Ant...

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

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

    struts2 +jquey uploadify3.2 实现多文件上传

    struts2 +jquey uploadify3 2 实现多文件上传 可以运行的myeclipse工程 绝对好用 访问方式http: 127 0 0 1:8080 Struts2Uploadify upload jsp uploadify 使用说明: &lt;a href &quot;javascript:$ &quot;#file ...

    struts1.0和struts2

    struts1和struts2的区别其实并不是太大,两者的区别: Action 类: ◆Struts1要求Action类继承一个抽象基类。Struts1的一个普遍问题是使用抽象类编程而不是接口。 ◆Struts 2 Action类可以实现一个Action接口,也...

    struts2(1-7)源码 struts2学习入门 源码学习

    struts4 使用Struts2中内部类中的方法进行自定义类型转换,用到的类StrutsTypeConverter struts5 增加集合类型,使用范型 struts6 直接设置要进行类型转换的字段值 struts7 制作一个表单,对表单中的内容进行...

    轻量级Java EE企业应用实战(第3版):Struts 2+Spring 3+Hibernate整合开发

    本书介绍了JavaEE领域的三个开源框架:Struts2、Spring和Hibernate。其中Struts2升级到2.2.1,Spring升级到3.0.5,Hibernate升级到了3.6.0。本书还全面介绍了Servlet3.0的新特性,以及Tomcat 7.0的配置和用法,本书...

    struts-core-1.3.8-API文档-中文版.zip

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

    STS2G:Struts2漏洞扫描利用工具 - Golang版. Struts2 Scanner Written in Golang

    目前两种模式scan和exec支持:struts2-001struts2-005struts2-007struts2-008struts2-009struts2-012struts2-013struts2-015struts2-016struts2-045struts2-046struts2-048struts2-053struts2-057开发目的1、适用于...

    Struts2入门教程(全新完整版)

    10.为什么要使用struts2代替struts1.x 7 二、struts.xml配置及例程 7 1.配置文件的优先级 7 2.配置形式 8 3.package配置相关 8 4.分工合作include:指定多个配置文件 10 5.tomcat认证访问 10 6.初识拦截器 11 7....

    Struts2中Action接收参数的方法

    Struts2 框架中,Action 组件可以通过多种方式接收参数,这些方式包括使用 Action 的属性、使用 DomainModel 和使用 ModelDriven。下面将详细介绍这些方法: 使用 Action 的属性接收参数 在 Struts2 中,可以使用 ...

Global site tag (gtag.js) - Google Analytics