现在的位置: 首页 > 综合 > 正文

Struts2常用的标签的用法

2013年12月15日 ⁄ 综合 ⁄ 共 6066字 ⁄ 字号 评论关闭

      property标签:<br>
      1.取值:<s:property value="username"/><br>
      <!--
      property的value对应了一个object,struts2会自动的转换成一个ognl表达式,然后取值.
                如果需要把字符串当成值,就应该用如下形式。
      -->     
      2.取值为字符串:<s:property value="'passwd'"/>||<s:property value="/"passwd/""/><br>
      <!--
      property是从值栈中取出对应属性的值,当一个给定的属性不存在值栈时,可以用default来
                设置该属性的值。然而这个值不会被放到值栈中。
      -->
      3.设定默认值:<s:property value="admin" default="管理员"/><br>
      <!--
                 当value的值是一个html标签时,struts2通过escape控制是将其解析成html还是字符串,
                 默认为true,将其转换为字符串。
       -->
      4.设定html:<s:property value="'<hr/>'" escape="true"/><br>
                  <s:property value="'<hr/>'" escape="false"/><br>
      <hr>
      set标签:<br>
      <!--
          set:通过set在不设定范围的情况下,这个属性与其对应的值会被放在request和actionContext中,
          然而在debug标签下去找这个值的时候,在request里看不到相关的设置值。原因是在形成debug标签时,这个值
          还没有放在request里面,但实际上这个值已经放到request里了。
       -->
      1.设定adminName(默认为request和actionContext):<s:set var="adminName" value="username"/>||<s:set id="1" name="adminPass" value="passwd"/><br>
      2.从request里取值:<s:property value="#request.adminName"/><br>
                         <s:property value="#request.adminPass"/><br>
      3.从actionContext取值:<s:property value="#adminName"/><br>
                             <s:property value="#adminPass"/><br>
      <!--
      scope表示设定的值放在什么范围,其取值有如下几种:application,session,session,page,action。
      -->
      4.设定范围:<s:set name="myPasswd" value="passwd" scope="page"></s:set><br>
      5.从相应的范围取值:<%=pageContext.getAttribute("myPasswd") %><br/>
      6.设定var,范围为actionContext:<s:set name="money" value="'wo hen yu men'" var="a" ></s:set><br>
      7.通过变量取值:<s:property value="#a"/><br>
      <hr>
      <!-- bean标签如果没有用var,则只能在bean标签内部使用相关属性,出了bean标签就用不了了。
      bean将会值栈中存在,而bean结束后,就移除值栈。如果用了var可以在actionContext中取得相关的值。
                有一点需要说明:在bean中定义成员变量时需要前2个字母为小写,否则会出现NoSuchPropertyException.
      -->
      bean标签:<br>
      <!-- bean标签是new一个类的对象,通过传入的参数给相关属性赋值 ,其var是将new出来的对象放入actionContext
                             如果没有var,new出来的对象将短暂的放在值栈中,bean标签结束时,自动从值栈中移除,因此在其他地方也访问不到
                             而放在actionContext中的内容在任何地方都能访问到。
      -->
      设置stu值:<s:bean name="com.xie.struts2.tags.modal.Student" var="stu">
                 <s:param name="stName">wang</s:param>
                 <s:property value="stName"/>                               
             </s:bean><br>
      从stu中取值:<s:property value="#stu.stName"/><br>
     
      <hr>
      include包含标签:<br>
      <!-- include标签 的value值是真正的String,用%将字符串转化成ognl表达式-->
      包含静态文件:<s:include value="/include1.html"></s:include><br>
      包含静态文件:<s:set var="incPage" value="'/include1.html'"></s:set>
      <s:include value="%{#incPage}"></s:include><br>
      <!-- 通过fielderror从值栈中读出来值进行显示是一种固定格式,这个并不常用
                   通常我们通过ognl表达式从值栈中取值,然后进行显示。
       -->
      读取fielderror:<s:fielderror theme="simple"></s:fielderror><hr>
      if控制标签if else if else:<br/>
      取出age的值:<s:property value="#parameters.age"/><br>
      <s:set var="age" value="#parameters.age[0]"></s:set>
      <s:if test="#age<10">
         He is too young.
      </s:if>
      <s:elseif test="#parameters.age[0]<20">
         He is yeah!
      </s:elseif>
      <s:else>
         Good!!!
      </s:else>
      <br><hr>
      itertor遍历集合:<br>
      <!-- iterator标签是遍历容器的,通常我们能想到的容器如:conncetion,map,enumeration等
                               在遍历map时,value的map前必须加上#
      -->
      遍历值栈的集合:<s:iterator value="sl">
                      <s:property value="stName"/>
                 </s:iterator><br>
      遍历指定集合:<s:iterator value="{1,2,3}">
                                                 值:<s:property/><br/>                                              
               </s:iterator><br>
      自定义变量:<s:iterator value="{'my name is xie','I want to go home','Java Is good'}" var="x">
                      <s:property value="#x.toUpperCase()"/>
                 </s:iterator><br>
     使用status:<br> <s:iterator value="{'aaa','bbb','ccc','ddd','eee','fff'}" status="status">
                  <s:property/>
                  遍历过的元素个数:<s:property value="#status.count"/>
                  遍历过的元素索引:<s:property value="#status.index"/>
                  当前是偶数:<s:property value="#status.even"/>
                  当前是奇数:<s:property value="#status.odd"/>
                  是第一个元素:<s:property value="#status.first"/>
                  是最后一个元素:<s:property value="#status.last"/><br/>
              </s:iterator><br> 
 访问map:<br>
            <s:iterator value="#{1:'aa',2:'bb',3:'cc',4:'dd',5:'ee'}">
                 <s:property value="key"/>|||||||<s:property value="value"/><br/>
            </s:iterator><br>
            <s:iterator value="#{1:'aa',2:'bb',3:'cc',4:'dd',5:'ee'}" var="map">
                 <s:property value="#map.key"/>|||||||<s:property value="#map.value"/><br/>
            </s:iterator><br>   <hr>
            subset标签:<br/>
            1. 基础访问:<s:subset source="sl">
                             <s:iterator>
                                <s:property value="stName"/>
                             </s:iterator>
                        </s:subset><br>
            <!-- 从低一个元素开始,访问count个元素 -->                       
            2.用count:<s:subset source="sl" count="2">
                             <s:iterator>
                                <s:property value="stName"/>
                             </s:iterator>
                        </s:subset><br>
            3.用start:<s:subset source="sl" count="2" start="1">
                             <s:iterator>
                                <s:property value="stName"/>
                             </s:iterator>
                        </s:subset><br>
             4.使用var:<s:subset var="mysl" source="sl" >
                               <%
                                     Iterator<Student> i = (Iterator<Student>) pageContext.getAttribute("mysl");
                                            while(i.hasNext()) {
                               %>
                                <%=i.next().getStName() %>
                               <%  } %>

                        </s:subset><br>
                        <!-- decider决定哪些元素将能被用于显示, -->
            5. 使用decider:    <s:subset source="myList">
                                  <s:iterator>
                                     <s:property />
                                  </s:iterator>
                              </s:subset>

【上篇】
【下篇】

抱歉!评论已关闭.