struct2标签使用一

 

<div style="overflow: auto;height: 100%">
 <table width="100%" border="1" cellspacing="0" cellpadding="1" bordercolor="ffffff" bordercolordark="#ffffff" bordercolorlight="B9B9B9" >
  <tr>
   <th class="sortable" bgcolor="#EFEFEF" width="13%">走查对象编号</th>
   <th class="sortable" bgcolor="#EFEFEF" width="15%">走查对象名称</th>
   <th class="sortable" bgcolor="#EFEFEF" width="10%">走查人</th>
   <th class="sortable" bgcolor="#EFEFEF" width="10%">走查时间</th>
   <th class="sortable" bgcolor="#EFEFEF" width="30%">走查项名称</th>
   <th class="sortable" bgcolor="#EFEFEF" width="22%"  align="center">走查结果</th>
  </tr>
  <s:iterator id="detailReviewActivityObject" value="detailReviewActivityObjects" status="status">
  <s:set name="reviewActivityResultSize" value="%{ tempReviewActivityResults.size() }"/>
   <tr>
    <td rowspan=${reviewActivityResultSize }>${detailReviewActivityObject.targetId}</td>
    <td rowspan=${reviewActivityResultSize }>${detailReviewActivityObject.targetName}</td>
    <td rowspan=${reviewActivityResultSize }>${detailReviewActivityObject.userName}&nbsp;</td>
    <td rowspan=${reviewActivityResultSize }><fmt:formatDate value="${detailReviewActivityObject.reviewDate}"  pattern="yyyy-MM-dd"/></td>
    <td align="left">
     <c:if test="${reviewActivityResultSize>0}">
      <s:set name="reviewActivityResultWalkthroughReviewItemName" value="%{ tempReviewActivityResults[0].walkthroughReviewItem.name }"/>
      ${ tempReviewActivityResults[0].walkthroughReviewItem.name }
     </c:if>
    </td>
    <td align="center">
     <c:if test="${reviewActivityResultSize>0}">
     <s:set name="reviewActivityResultResult" value="%{ tempReviewActivityResults[0].result }"/>
     <input disabled="disabled" type="radio" <c:if test="${reviewActivityResultResult=='01'}">checked</c:if> value="01"/>通过
     <input disabled="disabled" type="radio" <c:if test="${reviewActivityResultResult=='02'}">checked</c:if> value="02"/>不通过
     <input disabled="disabled" type="radio" <c:if test="${reviewActivityResultResult=='03'}">checked</c:if> value="03"/>不适用
     </c:if>
    </td>
   </tr>
  <s:iterator id="tempReviewActivityResult" value="tempReviewActivityResults" status="sta">
   <c:if test="${ sta.index!=0}">
   <tr>
    <td align="left">${tempReviewActivityResult.walkthroughReviewItem.name}</td>
    <td align="center">
     <input disabled="disabled" type="radio" <c:if test="${tempReviewActivityResult.result=='01'}">checked</c:if> value="01"/>通过
     <input disabled="disabled" type="radio" <c:if test="${tempReviewActivityResult.result=='02'}">checked</c:if> value="02"/>不通过
     <input disabled="disabled" type="radio" <c:if test="${tempReviewActivityResult.result=='03'}">checked</c:if> value="03"/>不适用
    </td>
   </tr>
   </c:if>
  </s:iterator>
  </s:iterator>
 </table> 
</div>
*********************************************************************************
一行显示四个,未全的补全.
<table>
 <s:iterator value="sysfiles" status="status">
  <s:if test="#status.index % 4 == 0">
   <tr>
  </s:if>
    <td>xxxx</td>
  <s:if test="#status.last">
   <s:set name="O" value="(4-((#status.index+1) % 4)) "/>
   <s:bean name="org.apache.struts2.util.Counter" id="counter">  
    <s:param name="first" value="1" />     
    <s:param name="last" value="#O" />    
    <s:iterator>       
     <td>num:<s:property value="current-1"/> </td>
    </s:iterator>  
   </s:bean>
  </s:if>
  <s:if test="#status.index % 4 == 3 || #status.last">
   </tr>
  </s:if>            
 </s:iterator> 
</table>
struts2提供了<s:bean/>标签,且提供了一个bean类:org.apache.struts2.util.Counter,该类中有first、last等属性,可用使用它获取自增值,如下:
其中first属性指定循环起始值,last指定循环终止值,其它相关属性可以查看org.apache.struts2.util.Counter类源码。在下面迭代器中输入循环的当前值,即:current-1
<s:bean name="org.apache.struts2.util.Counter" id="counter">
<s:param name="first" value="1" />
<s:param name="last" value="10" />
<s:iterator>
<s:property/>
<s:property value="current-1"/>
</s:iterator>
</s:bean>
iterator标签有如下方法:
   boolean isEven() 当前迭代元素索引是否为偶数;
   boolean isOdd() 当前迭代元素索引是否为奇数;
   boolean isLast()  是否为最后一条元素;
   boolean isFirst() 是否为第一条元素。          
   int getIndex() 返回当前迭代元素的索引
遍历数组
<s:iterator value="{'1','2','3','4','5'}" id='number'>
    <s:property value='#number'/>
</s:iterator>
遍历List
<s:iterator value="sysfiles" id="sys">
    <s:property value="#sys.name" />
</s:iterator>
<s:iterator value="sysfiles" >
    <s:property value="name" /> 或 ${name }
</s:iterator>
<s:iterator value="%{sysfiles}" >
    ${name }或<s:property value="name" />
</s:iterator>
<s:iterator value="%{sysfiles}" id="sys"   status="status">
index is : <s:property value='#status.index'/>
attrName is : <s:property value='%{sysfiles[#status.index].name}'/>
attrName is : <s:property value='#sys.name'/> or <s:property value='%{#sys.name}'/>
</s:iterator>
遍历Map
<s:iterator value="#{'foo1':'bar1', 'foo2':'bar2'}" id="id" status="st">
     key: <s:property value='key'/>
     value:<s:property value='value'/>
     index:<s:property value='#st.index'/>
     key:${id.key }
     key:${id.value }
</s:iterator>
"%"符号用途是计算OGNL表达式的值。
"$"有两个主要用途a.用于在国际化资源文件中,引用OGNL表达式.b.在Struts2配置文件中,引用OGNL表达式.
#符号用途一般有三种. a.访问非根对象属性.b.用来构造Map,例如示例中的#{'foo1':'bar1', 'foo2':'bar2'}.
c.用于过滤和投影(projecting)集合,如示例中的persons.{?#this.age>20}.
使用过的标签:
<s:if test=""></s:if>
<s:elseif test=""></s:elseif>
<s:else></s:else>
<s:action name=""></s:action>
<s:form></s:form>
<s:hidden></s:hidden>
<s:text name=""></s:text>
<s:textarea></s:textarea>
<s:textfield></s:textfield>
<s:iterator></s:iterator>
<s:property/>
<s:set></s:set>
<s:bean name=""></s:bean>
<s:url></s:url> 
<s:submit></s:submit> 
<s:reset></s:reset> 
<s:password></s:password>
<s:label></s:label>
<s:file></s:file>
<s:radio  name="issue.status" list="#{'2':#Open,'3':#Fixed}" />
<input  name="model.notice.meetingDate" type="text"  value="<s:date name="model.notice.realMeetingDate" format="yyyy-MM-dd"/>" />
<a href="<s:url value="/archie/draft.action"><s:param name="archieId">${archieRelation.archie.id}</s:param></s:url>" target="_blank">点击</a>&nbsp; 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值