Struts 2标签

Property标签:

        用于输出指定值。

   <s:set name="name" value="'kk'"/>
   <s:property value="#name"/>
   default:可选属性,如果需要输出的属性值为null,则显示该属性指定的值
   escape:可选属性,指定是否格式化HTML代码。
   value:可选属性,指定需要输出的属性值,如果没有指定该属性,则默认输出ValueStack栈顶的值。
   id:可选属性,指定该元素的标识

Iterator标签:

        用于对集合进行迭代,这里的集合包含List、Set和数组。
   <s:set name="list" value="{'tom','jim','lucy','lily'}" />
   <s:iterator value="#list" status="st">
                 <font color=<s:if test="#st.odd">red</s:if><s:else>blue</s:else>>
                 <s:property /></font><br>
   </s:iterator>

   value:可选属性,指定被迭代的集合,如果没有设置该属性,则使用ValueStack栈顶的集合。
   id:可选属性,指定集合里元素的id。
   status:可选属性,该属性指定迭代时的IteratorStatus实例。该实例包含如下几个方法:
             int getCount(),返回当前迭代了几个元素。
             int getIndex(),返回当前迭代元素的索引。
             boolean isEven(),返回当前被迭代元素的索引是否是偶数
             boolean isOdd(),返回当前被迭代元素的索引是否是奇数
             boolean isFirst(),返回当前被迭代元素是否是第一个元素。
             boolean isLast(),返回当前被迭代元素是否是最后一个元素。
if/elseif/else标签:

         <s:set name="age" value="21" />
         <s:if test="#age==23">
                 23
         </s:if>
         <s:elseif test="#age==21">
                 21
         </s:elseif>
         <s:else>
                都不等
         </s:else>

EL及struts 2标签值比较:

        <%
               session.setAttribute("na","toms");
        %>

          el:${na eq "toms" }

          <s:if test="#session.na eq 'toms'">
                  是
          </s:if>
          <s:else>
                不是
          </s:else>

采用OGNL表达式创建List/Map集合对象:

         <s:set name="list" value="{'zhangming','xiaoi','liming'}" />
         <s:iterator value="#list" id="n">
                   <s:property value="n"/><br>
         </s:iterator>

         生成一个Map对象:
         <s:set name="foobar" value="#{'foo1':'bar1', 'foo2':'bar2'}" />
         <s:iterator value="#foobar" >
                  <s:property value="key"/>=<s:property value="value"/><br>
         </s:iterator>

采用OGNL表达式判断对象是否存在于集合中:

对于集合类型,OGNL表达式可以使用in和not in两个元素符号。其中,in表达式用来判断某个元素是否在指定的集合对象中;not in判断某个元素是否不在指定的集合对象中,如下所示。
           in表达式:
             <s:if test="'foo' in {'foo','bar'}">
                        在
             </s:if>
             <s:else>
                       不在
             </s:else>

            not in表达式:
             <s:if test="'foo' not in {'foo','bar'}">
                       不在
             </s:if>
             <s:else>
                       在
             </s:else>

OGNL表达式的投影功能:

          除了in和not in之外,OGNL还允许使用某个规则获得集合对象的子集,常用的有以下3个相关操作符。
          ?:获得所有符合逻辑的元素。
          ^:获得符合逻辑的第一个元素。
          $:获得符合逻辑的最后一个元素。
          例如代码:
          <s:iterator value="books.{?#this.price > 35}">
                     <s:property value="title" /> - $<s:property value="price" /><br>
          </s:iterator>
          在上面代码中,直接在集合后紧跟.{}运算符表明用于取出该集合的子集,{}内的表达式用于获取符合条

          件的元素,this指的是为了从大集合books筛选数据到小集合,需要对大集合books进行迭代,this代表

          当前迭代的元素。本例的表达式用于获取集合中价格大于35的书集合。
          public class BookAction extends ActionSupport {
                private List<Book> books;
                ....
                @Override
                public String execute() {
                        books = new LinkedList<Book>();
                        books.add(new Book("A735619678", "spring", 67));
                        books.add(new Book("B435555322", "ejb3.0",15));
                }
          }


url标签:

        <s:url action="helloworld_add" namespace="/test">

            <s:param name="personid" value="23"/>//这中间写上去的东西都会被当作url的, value只能是数字

         </s:url>
        生成类似如下路径:
           /struts/test/helloworld_add.action?personid=23
        当标签的属性值作为字符串类型处理时, “%”符号的用途是计算OGNL表达式的值。
           <s:set name="myurl" value="'http://www.foshanshop.net'"/>
           <s:url value="#myurl" /><br>
           <s:url value="%{#myurl}" />
输出结果:
#myurl
http://www.foshanshop.net

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值