OGNL 表达式详解(Struts2.1 )

阅读更多

Struts2.1 OGNL 表达式 学习笔记

 收集五年的开发资料下载地址:  http://pan.baidu.com/share/home?uk=4076915866&view=share

Java代码     收藏代码
  1. <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>  
  2. <%@page import="com.rao.struts2.bean.Sex"%>  
  3. <%@ taglib prefix="s" uri="/struts-tags"%>  
  4. "-//W3C//DTD HTML 4.01 Transitional//EN">  
  5.   
  6.       
  7.         My JSP <span class="string" style="color: blue;">'OGNL1.jsp'</span><span style="color: black;"> starting page  
  8.   
  9.         "pragma" content="no-cache">  
  10.         "cache-control" content="no-cache">  
  11.         "expires" content="0">  
  12.         "keywords" content="keyword1,keyword2,keyword3">  
  13.         "description" content="This is my page">  
  14.           
  15.   
  16.       
  17.   
  18.       
  19.         <%  
  20.             request.setAttribute("req""request scope");  
  21.             request.getSession().setAttribute("sess""session scope");  
  22.             request.getSession().getServletContext().setAttribute("app",  
  23.                     "aplication scope");  
  24.         %>  
  25.     1.通过ognl表达式获取 属性范围中的值  
  26.         
      
  27.         "#request.req" />  
  28.           
  29.         "#session.sess" />  
  30.           
  31.         "#application.app" />  
  32.           
  33.         
      
  34.     2.通过"background-color: #fafafa;">ognl表达式创建list 集合 ,并且遍历出集合中的值  
  35.         
      
  36.         "list" value="{'eeeee','ddddd','ccccc','bbbbb','aaaaa'}">  
  37.         "#list" var="o">  
  38.               
  39.               
  40.               
  41.           
  42.           
  43.         
      
  44.     3.通过ognl表达式创建Map 集合 ,并且遍历出集合中的值  
  45.         
      
  46.         "map"  
  47.             value="#{'1':'eeeee','2':'ddddd','3':'ccccc','4':'bbbbb','5':'aaaaa'}">  
  48.         "#map" var="o">  
  49.               
  50.               
  51.             "key" />->"value" />  
  52.               
  53.           
  54.           
  55.         
      
  56.     4.通过ognl表达式 进行逻辑判断  
  57.         
      
  58.         if test="'aa' in {'aaa','bbb'}">  
  59.             aa 在 集合{'aaa','bbb'}中;  
  60.         if>  
  61.         else>  
  62.             aa 不在 集合{'aaa','bbb'}中;  
  63.         else>  
  64.   
  65.           
  66.   
  67.         if test="#request.req not in #list">  
  68.             不 在 集合list中;  
  69.         if>  
  70.         else>  
  71.             在 集合list中;  
  72.         else>  
  73.           
  74.         
      
  75.     5.通过ognl表达式 的投影功能进行数据筛选  
  76.         
      
  77.         "list1" value="{1,2,3,4,5}">  
  78.         "#list1.{?#this>2}" var="o">  
  79.               
  80.             ${o }  
  81.           
  82.           
  83.         
      
  84.     5.通过ognl表达式 访问某个类的静态方法和值  
  85.         
      
  86.         "@java.lang.Math@floor(32.56)" />  
  87.   
  88.         "@com.rao.struts2.action.OGNL1Action@aa" />  
  89.           
  90.           
  91.         
      
  92.     6.ognl表达式 迭代标签 详细  
  93.         
      
  94.         "list2"  
  95.             value="{'aa','bb','cc','dd','ee','ff','gg','hh','ii','jj'}">  
  96.         "1">  
  97.               
  98.                   
  99.                     索引  
  100.                   
  101.                   
  102.                     值  
  103.                   
  104.                   
  105.                     奇?  
  106.                   
  107.                   
  108.                     偶?  
  109.                   
  110.                   
  111.                     首?  
  112.                   
  113.                   
  114.                     尾?  
  115.                   
  116.                   
  117.                     当前迭代数量  
  118.                   
  119.               
  120.             "#list2" var="o" status="s">  
  121.                 "#s.even">pink">  
  122.                       
  123.                         "#s.getIndex()" />  
  124.                       
  125.                       
  126.                           
  127.                       
  128.                       
  129.                         if test="#s.odd">Yif>  
  130.                         else>Nelse>  
  131.                       
  132.                       
  133.                         if test="#s.even">Yif>  
  134.                         else>Nelse>  
  135.                       
  136.                       
  137.                         if test="#s.first">Yif>  
  138.                         else>Nelse>  
  139.                       
  140.                       
  141.                         if test="#s.isLast()">Yif>  
  142.                         else>Nelse>  
  143.                       
  144.                       
  145.                     "#s.getCount()"/>  
  146.                   
  147.                   
  148.   
  149.               
  150.           
  151.         
      
  152.         
      
  153.     7.ognl表达式:  if/else if/else 详细
      
  154.         <% request.setAttribute("aa",0); %>  
  155.         if test="#request.aa>=0 && #request.aa<=4">  
  156.             在0-4之间;  
  157.         if>  
  158.         "#request.aa>=4 && #request.aa<=8">  
  159.             在4-8之间;  
  160.           
  161.         else>  
  162.             大于8;  
  163.         else>  
  164.         
      
  165.         
      
  166.     8.ognl表达式: url 详细
      
  167.         <% request.setAttribute("aa","sss"); %>  
  168.         "testAction" namespace="/aa/bb">  
  169.             "aa" value="#request.aa">  
  170.             "id">100  
  171.           
  172.         
      
  173.         "myurl" value="'http://www.baidu.com'">  
  174.         value以字符处理:   "#myurl">
      
  175.         value明确指定以ognl表达式处理:    "%{#myurl}">  
  176.         
      
  177.         
      
  178.     9.ognl表达式: checkboxlist 详细
      
  179.         1> .list 生成;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      
  180.         name:checkboxlist的名字
      
  181.         list:checkboxlist要显示的列表
      
  182.         value:checkboxlist默认被选中的选项,checked=checked
      
  183.         "checkbox1" list="{'上网','看书','爬山','游泳','唱歌'}" value="{'上网','看书'}" >  
  184.         
      
  185.         以上生成代码:
      
  186.           </span></li> <li style="border-left: #d1d7dc 1px solid; padding-bottom: 0px; line-height: 18px; background-color: #fafafa; margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px;"><span style="color: black;">            <input type=<span class="string" style="color: blue;">"checkbox"</span><span style="color: black;"> name=</span><span class="string" style="color: blue;">"checkbox1"</span><span style="color: black;"> value=</span><span class="string" style="color: blue;">"上网"</span><span style="color: black;"> id=</span><span class="string" style="color: blue;">"checkbox1-1"</span><span style="color: black;"> checked=</span><span class="string" style="color: blue;">"checked"</span><span style="color: black;">/>  </span></span></li> <li style="border-left: #d1d7dc 1px solid; padding-bottom: 0px; line-height: 18px; background-color: #fafafa; margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px;"><span style="color: black;">            <label <span class="keyword" style="color: #7f0055; font-weight: bold;">for</span><span style="color: black;">=</span><span class="string" style="color: blue;">"checkbox1-1"</span><span style="color: black;"> </span><span class="keyword" style="color: #7f0055; font-weight: bold;">class</span><span style="color: black;">=</span><span class="string" style="color: blue;">"checkboxLabel"</span><span style="color: black;">>上网</label>  </span></span></li> <li style="border-left: #d1d7dc 1px solid; padding-bottom: 0px; line-height: 18px; background-color: #fafafa; margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px;"><span style="color: black;">            <input type=<span class="string" style="color: blue;">"checkbox"</span><span style="color: black;"> name=</span><span class="string" style="color: blue;">"checkbox1"</span><span style="color: black;"> value=</span><span class="string" style="color: blue;">"看书"</span><span style="color: black;"> id=</span><span class="string" style="color: blue;">"checkbox1-2"</span><span style="color: black;"> checked=</span><span class="string" style="color: blue;">"checked"</span><span style="color: black;">/>  </span></span></li> <li style="border-left: #d1d7dc 1px solid; padding-bottom: 0px; line-height: 18px; background-color: #fafafa; margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px;"><span style="color: black;">            <label <span class="keyword" style="color: #7f0055; font-weight: bold;">for</span><span style="color: black;">=</span><span class="string" style="color: blue;">"checkbox1-2"</span><span style="color: black;"> </span><span class="keyword" style="color: #7f0055; font-weight: bold;">class</span><span style="color: black;">=</span><span class="string" style="color: blue;">"checkboxLabel"</span><span style="color: black;">>看书</label>  </span></span></li> <li style="border-left: #d1d7dc 1px solid; padding-bottom: 0px; line-height: 18px; background-color: #fafafa; margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px;"><span style="color: black;">            <input type=<span class="string" style="color: blue;">"checkbox"</span><span style="color: black;"> name=</span><span class="string" style="color: blue;">"checkbox1"</span><span style="color: black;"> value=</span><span class="string" style="color: blue;">"爬山"</span><span style="color: black;"> id=</span><span class="string" style="color: blue;">"checkbox1-3"</span><span style="color: black;">/>  </span></span></li> <li style="border-left: #d1d7dc 1px solid; padding-bottom: 0px; line-height: 18px; background-color: #fafafa; margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px;"><span style="color: black;">            <label <span class="keyword" style="color: #7f0055; font-weight: bold;">for</span><span style="color: black;">=</span><span class="string" style="color: blue;">"checkbox1-3"</span><span style="color: black;"> </span><span class="keyword" style="color: #7f0055; font-weight: bold;">class</span><span style="color: black;">=</span><span class="string" style="color: blue;">"checkboxLabel"</span><span style="color: black;">>爬山</label>  </span></span></li> <li style="border-left: #d1d7dc 1px solid; padding-bottom: 0px; line-height: 18px; background-color: #fafafa; margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px;"><span style="color: black;">            <input type=<span class="string" style="color: blue;">"checkbox"</span><span style="color: black;"> name=</span><span class="string" style="color: blue;">"checkbox1"</span><span style="color: black;"> value=</span><span class="string" style="color: blue;">"游泳"</span><span style="color: black;"> id=</span><span class="string" style="color: blue;">"checkbox1-4"</span><span style="color: black;">/>  </span></span></li> <li style="border-left: #d1d7dc 1px solid; padding-bottom: 0px; line-height: 18px; background-color: #fafafa; margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px;"><span style="color: black;">            <label <span class="keyword" style="color: #7f0055; font-weight: bold;">for</span><span style="color: black;">=</span><span class="string" style="color: blue;">"checkbox1-4"</span><span style="color: black;"> </span><span class="keyword" style="color: #7f0055; font-weight: bold;">class</span><span style="color: black;">=</span><span class="string" style="color: blue;">"checkboxLabel"</span><span style="color: black;">>游泳</label>  </span></span></li> <li style="border-left: #d1d7dc 1px solid; padding-bottom: 0px; line-height: 18px; background-color: #fafafa; margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px;"><span style="color: black;">            <input type=<span class="string" style="color: blue;">"checkbox"</span><span style="color: black;"> name=</span><span class="string" style="color: blue;">"checkbox1"</span><span style="color: black;"> value=</span><span class="string" style="color: blue;">"唱歌"</span><span style="color: black;"> id=</span><span class="string" style="color: blue;">"checkbox1-5"</span><span style="color: black;">/>  </span></span></li> <li style="border-left: #d1d7dc 1px solid; padding-bottom: 0px; line-height: 18px; background-color: #fafafa; margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px;"><span style="color: black;">            <label <span class="keyword" style="color: #7f0055; font-weight: bold;">for</span><span style="color: black;">=</span><span class="string" style="color: blue;">"checkbox1-5"</span><span style="color: black;"> </span><span class="keyword" style="color: #7f0055; font-weight: bold;">class</span><span style="color: black;">=</span><span class="string" style="color: blue;">"checkboxLabel"</span><span style="color: black;">>唱歌</label>"  </span></span></li> <li style="border-left: #d1d7dc 1px solid; padding-bottom: 0px; line-height: 18px; background-color: #fafafa; margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px;"><span style="color: black;">          
  187.         2> .Map 生成;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      
  188.         name:checkboxlist的名字
      
  189.         list:checkboxlist要显示的列表
      
  190.         listKey:checkbox 的value的值
      
  191.         listValue:checkbox 的lablel(显示的值)
      
  192.         value:checkboxlist默认被选中的选项,checked=checked
      
  193.         "checkbox2" list="#{1:'上网',2:'看书',3:'爬山',4:'游泳',5:'唱歌'}" listKey="key" listValue="value" value="{1,2,5}" >  
  194.         
      
  195.         以上生成代码:
      
  196.           </span></li> <li style="border-left: #d1d7dc 1px solid; padding-bottom: 0px; line-height: 18px; background-color: #fafafa; margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px;"><span style="color: black;">            <input type=<span class="string" style="color: blue;">"checkbox"</span><span style="color: black;"> name=</span><span class="string" style="color: blue;">"checkbox2"</span><span style="color: black;"> value=</span><span class="string" style="color: blue;">"1"</span><span style="color: black;"> id=</span><span class="string" style="color: blue;">"checkbox2-1"</span><span style="color: black;"> checked=</span><span class="string" style="color: blue;">"checked"</span><span style="color: black;">/>  </span></span></li> <li style="border-left: #d1d7dc 1px solid; padding-bottom: 0px; line-height: 18px; background-color: #fafafa; margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px;"><span style="color: black;">            <label <span class="keyword" style="color: #7f0055; font-weight: bold;">for</span><span style="color: black;">=</span><span class="string" style="color: blue;">"checkbox2-1"</span><span style="color: black;"> </span><span class="keyword" style="color: #7f0055; font-weight: bold;">class</span><span style="color: black;">=</span><span class="string" style="color: blue;">"checkboxLabel"</span><span style="color: black;">>上网</label>  </span></span></li> <li style="border-left: #d1d7dc 1px solid; padding-bottom: 0px; line-height: 18px; background-color: #fafafa; margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px;"><span style="color: black;">            <input type=<span class="string" style="color: blue;">"checkbox"</span><span style="color: black;"> name=</span><span class="string" style="color: blue;">"checkbox2"</span><span style="color: black;"> value=</span><span class="string" style="color: blue;">"2"</span><span style="color: black;"> id=</span><span class="string" style="color: blue;">"checkbox2-2"</span><span style="color: black;"> checked=</span><span class="string" style="color: blue;">"checked"</span><span style="color: black;">/>  </span></span></li> <li style="border-left: #d1d7dc 1px solid; padding-bottom: 0px; line-height: 18px; background-color: #fafafa; margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px;"><span style="color: black;">            <label <span class="keyword" style="color: #7f0055; font-weight: bold;">for</span><span style="color: black;">=</span><span class="string" style="color: blue;">"checkbox2-2"</span><span style="color: black;"> </span><span class="keyword" style="color: #7f0055; font-weight: bold;">class</span><span style="color: black;">=</span><span class="string" style="color: blue;">"checkboxLabel"</span><span style="color: black;">>看书</label>  </span></span></li> <li style="border-left: #d1d7dc 1px solid; padding-bottom: 0px; line-height: 18px; background-color: #fafafa; margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px;"><span style="color: black;">            <input type=<span class="string" style="color: blue;">"checkbox"</span><span style="color: black;"> name=</span><span class="string" style="color: blue;">"checkbox2"</span><span style="color: black;"> value=</span><span class="string" style="color: blue;">"3"</span><span style="color: black;"> id=</span><span class="string" style="color: blue;">"checkbox2-3"</span><span style="color: black;">/>  </span></span></li> <li style="border-left: #d1d7dc 1px solid; padding-bottom: 0px; line-height: 18px; background-color: #fafafa; margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px;"><span style="color: black;">            <label <span class="keyword" style="color: #7f0055; font-weight: bold;">for</span><span style="color: black;">=</span><span class="string" style="color: blue;">"checkbox2-3"</span><span style="color: black;"> </span><span class="keyword" style="color: #7f0055; font-weight: bold;">class</span><span style="color: black;">=</span><span class="string" style="color: blue;">"checkboxLabel"</span><span style="color: black;">>爬山</label>  </span></span></li> <li style="border-left: #d1d7dc 1px solid; padding-bottom: 0px; line-height: 18px; background-color: #fafafa; margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px;"><span style="color: black;">            <input type=<span class="string" style="color: blue;">"checkbox"</span><span style="color: black;"> name=</span><span class="string" style="color: blue;">"checkbox2"</span><span style="color: black;"> value=</span><span class="string" style="color: blue;">"4"</span><span style="color: black;"> id=</span><span class="string" style="color: blue;">"checkbox2-4"</span><span style="color: black;">/>  </span></span></li> <li style="border-left: #d1d7dc 1px solid; padding-bottom: 0px; line-height: 18px; background-color: #fafafa; margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px;"><span style="color: black;">            <label <span class="keyword" style="color: #7f0055; font-weight: bold;">for</span><span style="color: black;">=</span><span class="string" style="color: blue;">"checkbox2-4"</span><span style="color: black;"> </span><span class="keyword" style="color: #7f0055; font-weight: bold;">class</span><span style="color: black;">=</span><span class="string" style="color: blue;">"checkboxLabel"</span><span style="color: black;">>游泳</label>  </span></span></li> <li style="border-left: #d1d7dc 1px solid; padding-bottom: 0px; line-height: 18px; background-color: #fafafa; margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px;"><span style="color: black;">            <input type=<span class="string" style="color: blue;">"checkbox"</span><span style="color: black;"> name=</span><span class="string" style="color: blue;">"checkbox2"</span><span style="color: black;"> value=</span><span class="string" style="color: blue;">"5"</span><span style="color: black;"> id=</span><span class="string" style="color: blue;">"checkbox2-5"</span><span style="color: black;"> checked=</span><span class="string" style="color: blue;">"checked"</span><span style="color: black;">/>  </span></span></li> <li style="border-left: #d1d7dc 1px solid; padding-bottom: 0px; line-height: 18px; background-color: #fafafa; margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px;"><span style="color: black;">            <label <span class="keyword" style="color: #7f0055; font-weight: bold;">for</span><span style="color: black;">=</span><span class="string" style="color: blue;">"checkbox2-5"</span><span style="color: black;"> </span><span class="keyword" style="color: #7f0055; font-weight: bold;">class</span><span style="color: black;">=</span><span class="string" style="color: blue;">"checkboxLabel"</span><span style="color: black;">>唱歌</label>  </span></span></li> <li style="border-left: #d1d7dc 1px solid; padding-bottom: 0px; line-height: 18px; background-color: #fafafa; margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px;"><span style="color: black;">          
  197.         
      
  198.     10.ognl表达式: s:radio 详细
      
  199.         <%  
  200.             Sex sex1 = new Sex(1,"男");   
  201.             Sex sex2 = new Sex(2,"女");  
  202.             List list = new ArrayList();   
  203.             list.add(sex1);  
  204.             list.add(sex2);  
  205.             request.setAttribute("sexs",list);   
  206.         %>  
  207.         这个与checkboxlist差不多;
      
  208.         1>.如果集合为javabean:"sex" list="#request.sexs" listKey="id" listValue="name">
      
  209.         2>.如果集合为list:"sexList" list="{'男','女'}">
      
  210.         3>.如果集合为map:"sexMap" list="#{1:'男',2:'女'}" listKey="key" listValue="value">
      
  211.         
      
  212.     11.ognl表达式: s:select 详细
      
  213.         这个与s:checkboxlist差不多;
      
  214.         1>.如果集合为javabean:"sex" list="#request.sexs" listKey="id" listValue="name">
      
  215.         2>.如果集合为list:"sexList" list="{'男','女'}">
      
  216.         3>.如果集合为map:"sexMap" list="#{1:'男',2:'女'}" listKey="key" listValue="value">
      
  217.     到此主要的ognl标签已经介绍完毕...由于表单标签相对简单不介绍了....  
  218.       
  219.   

 

附上以上代码运行结果图片:见附件

 



 
OGNL 表达式详解(Struts2.1 )_第1张图片
 
OGNL 表达式详解(Struts2.1 )_第2张图片
OGNL 表达式详解(Struts2.1 )_第3张图片

 

 

 


总结OGNL的使用方法:

访问属性

名字属性获取:

地址属性获取:

访问方法

调用值栈中对象的普通方法:

访问静态属性和方法

调用Action中的静态方法:

调用JDK中的类的静态方法:

调用JDK中的类的静态方法(同上):

调用JDK中的类的静态方法:

调用普通类中的静态属性:

访问构造方法

调用普通类的构造方法:

 

1.5. 访问数组

获取List:

获取List中的某一个元素(可以使用类似于数组中的下标获取List中的内容):


获取Set:

获取Set中的某一个元素(Set由于没有顺序,所以不能使用下标获取数据):


 ×

获取Map:

获取Map中所有的键:

获取Map中所有的值:

获取Map中的某一个元素(可以使用类似于数组中的下标获取List中的内容):


获取List的大小:

 

访问集合 – 投影、选择(? ^ $)

利用选择获取List中成绩及格的对象:

利用选择获取List中成绩及格的对象的username:


利用选择获取List中成绩及格的第一个对象的username:


利用选择获取List中成绩及格的第一个对象的username:


利用选择获取List中成绩及格的最后一个对象的username:


利用选择获取List中成绩及格的第一个对象然后求大小:


集合的伪属性

OGNL能够引用集合的一些特殊的属性,这些属性并不是JavaBeans模式,例如size(),length()等等. 当表达式引用这些属性时,OGNL会调用相应的方法,这就是伪属性.

集合

伪属性

Collection(inherited by Map, List & Set)

size ,isEmpty

List

iterator

Map

keys , values

Set

iterator

Iterator

next , hasNext

Enumeration

next , hasNext , nextElement , hasMoreElements

 

 Lambda   :[…]

格式::[…]

使用Lambda表达式计算阶乘:


OGNL中#的使用

#可以取出堆栈上下文中的存放的对象.

名称

作用

例子

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)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

获取Paraments对象的属性:

OGNL中%的使用

用%{}可以取出存在值堆栈中的Action对象,直接调用它的方法.

例如你的Action如果继承了ActionSupport .那么在页面标签中,用%{getText('key')}的方式可以拿出国际化信息.

 OGNL中$的使用

“$”有两个主要的用途

l         用于在国际化资源文件中,引用OGNL表达式

l         在Struts 2配置文件中,引用OGNL表达式

 值栈

ValueStack对象。这个对象贯穿整个Action的生命周期(每个Action类的对象实例会拥有一个ValueStack对象)。当Struts 2接收到一个.action的请求后,会先建立Action类的对象实例,但并不会调用Action方法,而是先将Action类的相应属性放到ValueStack对象的顶层节点(ValueStack对象相当于一个栈)。

在Action中获得ValueStack对象:ActionContext.getContext().getValueStack()

l         Top语法

使用Top获取值栈中的第二个对象:

l         N语法

使用N获取值栈中的第二个对象:

l         @语法

调用action中的静态方法: vs:值栈 1:表示第一个。

你可能感兴趣的:(ongl)