struts2中ognl标签详解

简介:
[html]  view plain  copy
 print ?
  1. <body>  
  2.    
  3.    <s:set name="age" value="61" />  
  4.    <!-- if elseif else 参数test:决定标志里的内容是否显示的表达式,类型boolean 注:else标志没有这个参数 -->  
  5.    <h3>if语句</h3>  
  6.    <s:if test="{age>60}">  
  7.     老年人  
  8.    </s:if>  
  9.    <s:elseif test="{age>35}">  
  10.     中年人  
  11.    </s:elseif>  
  12.    <s:elseif test="{age>15}">  
  13.     青年人  
  14.    </s:elseif>  
  15.    <s:else>  
  16.     少年  
  17.    </s:else>  
  18.    <br />  
  19.    <s:iterator value="{'11','21','31','41','51'}"  id='number' var="number2">  
  20.     <s:property value="#number"/>A  
  21.     <s:property value="#number2"/>B  
  22.    </s:iterator>  
  23.    <br />  
  24.    <!--   
  25.     status:迭代元素的索引,可以指定first、count、even、odd、last、index属性  
  26.     begin:从指定的索引处开始  
  27.     end:到指定的索引处结束  
  28.     step:一次遍历几次  
  29.      
  30.     -->  
  31.     <h3>iterator语句</h3>  
  32.    <s:iterator value="{'a','b','c','d'}" id="char" status="st" begin="1" end="3" step="2" >  
  33.     <s:if test="#st.first">第一个元素:<s:property value="#char" /></s:if>  
  34.     <s:if test="#st.count">当前迭代了<s:property value="#st.count" />个元素</s:if>  
  35.     <s:if test="#st.even">索引为奇数的是:<s:property value="#char" /></s:if>  
  36.     <s:if test="#st.odd">索引为偶数的是:<s:property value="#char"/></s:if>  
  37.     <s:if test="#st.last">最后一个元素:<s:property value="#char" /></s:if>  
  38.     当前索引:<s:property value="#st.index" />  
  39.     当前元素值:<c:out value="${char}"></c:out>  
  40.     <br />  
  41.    </s:iterator>  
  42.    <br />  
  43.    <h3>map语句</h3>  
  44.    <s:set value="#{'1':'a','2':'b'}" name="map" />  
  45. map中键为1的值为:<s:property value="#map['1']" />  
  46. <br />  
  47. map中键为2的值为:<s:property value="#map['2']" />  
  48. <br />  
  49.    <s:iterator value="#map" var="map2">  
  50.     key:<s:property value="key" />  
  51.     value:<s:property value="value" />  
  52.    </s:iterator>  
  53.    <br />  
  54.    <%  
  55.     request.setAttribute("req","request scope") ;  
  56.     request.getSession().setAttribute("sess","session scope") ;  
  57.     request.getSession().getServletContext().setAttribute("app","application scope") ;  
  58.    %>  
  59.    <h3>取request、session、application值</h3>  
  60.    request的值:<s:property value="%{#request.req}" /><br />  
  61.    session的值:<s:property value="#session.sess" /><br />  
  62.    application的值:<s:property value="#application.app" /><br />  
  63.    <c:out value="${requestScope.req}"></c:out>  
  64.      
  65.    <h3>%符号的用法</h3>  
  66.     <s:set name="foobar" value="#{'foo1':'bar1', 'foo2':'bar2'}" />      
  67.      
  68.    <p>The value of key "foo1" is <s:property value="#foobar['foo1']" /></p>      
  69.      
  70.    <p>不使用%:<s:url value="#foobar['foo1']" /></p>      
  71.      
  72.    <p>使用%:<s:url value="%{#foobar['foo1']}" /></p>      
  73.    <h3>逻辑判断</h3>  
  74.    <br>      
  75.        <s:if test="'aa' in {'aaa','bbb'}">      
  76.            aa 在 集合{'aaa','bbb'}中;      
  77.        </s:if>      
  78.        <s:else>      
  79.            aa 不在 集合{'aaa','bbb'}中;      
  80.        </s:else>      
  81.        <br />      
  82.         <s:set name="list" value="{'eeeee','ddddd','ccccc','bbbbb','request scope'}"></s:set>   
  83.        <s:if test="#request.req not in #list">      
  84.                    不 在 集合list中;      
  85.        </s:if>      
  86.        <s:else>      
  87.                在 集合list中;      
  88.        </s:else>      
  89.        <br />      
  90.        <hr>  
  91.        <h3>返回集合中满足条件的值,下面输出3 4 5</h3>  
  92.        <s:set name="list1" value="{1,2,3,4,5}" />  
  93.        <s:iterator value="#list1.{?#this>2}" var="o">  
  94.         <s:property />  
  95.        </s:iterator>  
  96.        <br />  
  97.        <hr />  
  98.         <% request.setAttribute("aa",0); %>      
  99.        <s:if test="#request.aa>=0 && #request.aa<=4">      
  100.                    在0-4之间;      
  101.        </s:if>      
  102.        <s:elseif test="#request.aa>=4 && #request.aa<=8">      
  103.                  在4-8之间;      
  104.        </s:elseif>      
  105.        <s:else>      
  106.                 大于8;      
  107.        </s:else>      
  108.        <br>      
  109.        <hr>      
  110.        <!--输出以下结果   
  111.         /test/aa/bb/testAction.action?aa=sss&id=100   
  112.            value以字符处理: #myurl  
  113.            value明确指定以ognl表达式处理: http://www.baidu.com      
  114.         -->  
  115.        <% request.setAttribute("aa","sss"); %>      
  116.        <s:url action="testAction" namespace="/aa/bb">      
  117.            <s:param name="aa" value="#request.aa"></s:param>      
  118.            <s:param name="id">100</s:param>      
  119.        </s:url>      
  120.        <br/>      
  121.        <s:set name="myurl" value="'http://www.baidu.com'"></s:set>      
  122.        value以字符处理:   <s:url value="#myurl"></s:url><br>      
  123.        value明确指定以ognl表达式处理:    <s:url value="%{#myurl}"></s:url>      
  124.        <br>      
  125.        <hr>      
  126.         <s:checkboxlist name="checkbox1" list="{'上网','看书','爬山','游泳','唱歌'}" value="{'上网','看书'}" ></s:checkboxlist><br />  
  127.         <s:checkboxlist name="checkbox2" list="#{1:'上网',2:'看书',3:'爬山',4:'游泳',5:'唱歌'}" listKey="key" listValue="value" value="{1,2,5}" ></s:checkboxlist>    
  128.    <s:debug></s:debug>  
  129.      
  130.  </body>  
[html]  view plain  copy
 print ?
  1. <span style="font-size:32px;">输出结果为:</span>  
[html]  view plain  copy
 print ?
  1. <span style="font-size:10px; font-family: Arial, Helvetica, sans-serif;">if语句</span><span style="font-size:10px;"></span><pre name="code" class="html">  
  2. 老年人   
  3. A 11B A 21B A 31B A 41B A 51B   
  4. iterator语句  
  5.   
  6. 第一个元素:b 当前迭代了1个元素 索引为偶数的是:b 当前索引:0 当前元素值:b   
  7. 当前迭代了2个元素 索引为奇数的是:d 最后一个元素:d 当前索引:1 当前元素值:d   
  8.   
  9. map语句  
  10.   
  11. map中键为1的值为:a   
  12. map中键为2的值为:b   
  13. key:1 value:a key:2 value:b   
  14. 取request、session、application值  
  15.   
  16. request的值:request scope  
  17. session的值:session scope  
  18. application的值:application scope  
  19. request scope  
  20. %符号的用法  
  21.   
  22. The value of key "foo1" is bar1  
  23.   
  24. 不使用%:#foobar['foo1']  
  25.   
  26. 使用%:bar1  
  27.   
  28. 逻辑判断  
  29.   
  30.   
  31. aa 不在 集合{'aaa','bbb'}中;   
  32. 在 集合list中;   
  33. 返回集合中满足条件的值,下面输出3 4 5  
  34.   
  35. 3 4 5   
  36. 在0-4之间;   
  37. /test/aa/bb/testAction.action?aa=sss&id=100   
  38. value以字符处理: #myurl  
  39. value明确指定以ognl表达式处理: http://www.baidu.com   
  40.  上网  看书  爬山  游泳  唱歌   
  41.  上网  看书  爬山  游泳  唱歌  
  42. [Debug]  
目录
相关文章
|
存储 Java 对象存储
Struts2【OGNL、ValueStack】
Struts2【OGNL、ValueStack】
107 0
Struts2【OGNL、ValueStack】
|
存储 Java
Struts2【OGNL、valueStack】就是这么简单
什么是OGNL表达式? OGNL是Object Graphic Navigation Language 是操作对象属性的开源表达式。 Struts2框架使用OGNL作为默认的表达式语言。 为什么我们学习OGNL 在学习JSP的时候,我们已经学习过了EL表达式。
2090 0
|
JavaScript 数据库
|
XML Java 数据格式
|
Web App开发 存储 Java
struts2之OGNL和struts2标签库和ValueStack对象
OGNL简介:    (1)OGNL是Object Graphic Navigation Language(对象图导航语言)的缩写,它是一个开源项目。      struts2框架默认就支持Ognl表达式语言(所以struts必须引用的包:ognl.
1266 0
|
Java 数据安全/隐私保护 Spring
struts2 标签大全
1): ---- 文本输入框 使用: (2): ----- 文本域输入框 使用: (3): ----- 密码输入框 使用: 前三个基本都是一样的。
1055 0