如何将 Struts 2 中的迭代器列表传递给 JavaScript

How to pass iterator list in Struts 2 to JavaScript?

本文关键字:列表 JavaScript 迭代器 Struts      更新时间:2023-09-26
<fieldset class="fieldset">
  <legend class="legendtitle">DEDUCTIONS</legend>
  <table width="100%"  border="0" cellspacing= "0" cellpadding="0">
    <tr>
      <td class="Htd_one1" width="20%"><div align="center">Component</div></td>
      <td class="Htd_one1" width="20%"><div align="center">Allocated</div></td>
    </tr>
       
    <s:iterator value="%{#resultLists.deductionLists}" id="hrEmpSalaryCompDeductionList" 
                                                   status="stat">
      <s:if test="%{#allowanceList.allocatedSalAmount > 0}">
        <tr>
          <td class="labelone1" >
            <div align="center">
              <s:property value="%{#allowanceList.componentDesc}" />
            </div>
          </td>
          <td class="dataone1" >
            <div align="right"> 
              <s:property value="%{#allowanceList.allocatedSalAmount}" />
            </div>
          </td>
        </tr>
      </s:if>
    </s:iterator>
  </table>
</fieldset>

如果迭代器列表中的allowanceList.allocatedSalAmount值都不大于 0,我需要隐藏整个字段集resultLists.deductionLists

我想调用 JavaScript 并传递 resultLists.deductionLists 的值,然后设置一个计数器(如果有任何allowanceList.allocatedSalAmount大于 0(。

但是我怎样才能将resultLists.deductionLists的列表值传递给 JavaScript 并访问其中的所有allowanceList.allocatedSalAmount呢?

要隐藏整个fieldset,您必须用<s:if>标签包装它。

<s:if test="%{#allowanceList.allocatedSalAmount > 0}">
<fieldset class="fieldset">
  <legend class="legendtitle">DEDUCTIONS</legend>
  <table width="100%"  border="0" cellspacing= "0" cellpadding="0">
    <tr>
       <td class="Htd_one1" width="20%"><div align="center">Component</div></td>
       <td class="Htd_one1" width="20%"><div align="center">Allocated</div></td>
       </tr>
    <s:iterator value="%{#resultLists.deductionLists}" id="hrEmpSalaryCompDeductionList" 
                                                   status="stat">
      
        <tr>
          <td class="labelone1" >
            <div align="center">
              <s:property value="%{#allowanceList.componentDesc}" />
            </div>
          </td>
          <td class="dataone1" >
            <div align="right"> 
              <s:property value="%{#allowanceList.allocatedSalAmount}" />
            </div>
          </td>
        </tr>
      
    </s:iterator>
  </table>
</fieldset>
</s:if>

由于在 FieldSet 中一次只能迭代一个列表,因此不能让两个列表由同一迭代器迭代。您必须定义要在 <s:if> 标记中计算的正确表达式,以决定是否应显示字段集。