zoukankan      html  css  js  c++  java
  • struts2 OGNL(Object-Graph Navigation Language) 井号,星号,百分号

    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表达式的值。 如:

         

     1 在Action中加入
     2 //省略set/get
     3 private Map<String,String> testmap=new HashMap<String,String>();   
     4 
     5 在execute中加入:
     6  //ActionContext中的testmap      
     7         testmap.put("mp1", "vsmap1");
     8         testmap.put("mp2", "vsmap2");
     9         testmap.put("mp3", "vsmap3");
    10         testmap.put("mp4", "vsmap5555");
    11         
    12 
    13 在结果页面加入:
    14 
    15 
    16 遍历actionContext中的testmap<p>
    17         <s:iterator value="testmap">
    18             <s:property value="key"/>=<s:property value="value" /><br>
    19         </s:iterator>
    20         
    21         <h3>-----------------s:property--------------------------%的用途</h3>                 //property 有没%号都一样。解析为value值
    22         <p>用点号. :<s:property value="testmap.mp1"/></p>
    23         <p>用方括号[] :<s:property value="testmap['mp1']"/></p>
    24         <p>有%号:<s:property value="%{testmap['mp1']}" /></p>
    25         
    26         <h3>-----------------s:url--------------------------%的用途</h3>
    27         <p>用点号. :<s:url value="testmap.mp1"/></p>
    28         <p>用方括号[] :<s:url value="testmap['mp1']"/></p>                  //直接显示为testmap['mp1']
    29         <p>有%号:<s:url value="%{testmap['mp1']}" /></p>

    结果如下:

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

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

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

     


  • 相关阅读:
    嘿嘿...World Cup 2006!
    打开指定的access数据库
    微软的好东东:Slideshow Generator Powertoy for Windows XP
    大地诗景:银川 (转载)
    软件加密技术及实现(转载)
    惠威D1080带来精致听音感受
    编辑word中文本框的内容
    管理之困:居高不下的流动率
    【转】力控的60个经典问题
    解决联想部分电脑不能用GHOST备份问题
  • 原文地址:https://www.cnblogs.com/yuyutianxia/p/3248156.html
Copyright © 2011-2022 走看看