当前位置: 首页 > 工具软件 > JspTest > 使用案例 >

Jsp 页面迭代中使用<s:if>判断动态变量值

夹谷星河
2023-12-01

在迭代中需要需要判断当前记录id是否与上一条记录的id相同,并进行相应处理,实现方式如下:


1.判断是否是第一条记录,如果是设置一个动态变量,并赋值

  <s:if test="#st.First">
     <s:set name="orderid" value="#order[0]"></s:set> 
     </s:if>

2.如果不是第一条记录,判断动态变量是否需当前id相同,并给动态变量再赋新值

 <s:if test="#orderid!=#order[0]">
     <s:set name="orderid" value="#order[0]"></s:set> 

注:不同的标签头,可能使用“#”取值,或${}取值,可能会报错,报错时换一下试试


附代码:

<s:iterator value="#request.myorders" id="order" status='st'>
    
     
     <s:if test="#st.First">
     <s:set name="orderid" value="#order[0]"></s:set> 
     </s:if>
     <s:if test="#orderid!=#order[0]">
    <s:set name="orderid" value="#order[0]"></s:set> 
    
    订单号: <s:property value="#order[0]"/> 订单金额:  <s:property value="#order[1]"/>
    下单时间: <s:property value="#order[2]"/>   收货地址: <s:property value="#order[3]"/> 
    <s:property value="#order[4]"/><s:property value="#order[5]"/> 
    <s:property value="#order[6]"/> <s:property value="#order[7]"/>订单状态: <s:property value="#order[8]"/>
    </s:if>
    <br>
      商品号: <s:property value="#order[9]"/>
      商品单价: <s:property value="#order[10]"/>    
      购买数量: <s:property value="#order[11]"/>
     
     <br>


    </s:iterator> 


//附:

s:iterator 标签有3个属性: 

    value:被迭代的集合 
    id   :指定集合里面的元素的id 
    status 迭代元素的索引  

你可以用status(迭代元素的索引)来判断 #status.index == 3 
2:索引的用法 
如果指定了status,每次的迭代数据都有IteratorStatus的实例,它有以下几个方法 
int getCount()返回当前迭代了几个元素 
int getIndex()返回当前元素索引 
boolean isEven()当然的索引是否偶数 
boolean isFirst()当前是否第一个元素 
boolean isLast() 
boolean isOdd()当前元素索引是否奇数 

<s:iterator value="{'a','b','c'}" id='char' status='st'> 
    <s:if test="#st.Even"> 
        现在的索引是奇数为:<s:property value='#st.index'/> 
    </s:if> 
    当前元素值:<s:property value='char'/> 
</s:iterator> 
 类似资料: