日期:2014-05-17  浏览次数:20768 次

struts1.x包含嵌套List的多行提交
普通的多行提交没任何问题,可现在这个业务比较特殊
一般的多行提交,从一个list中迭代出来,然后再提交回这个list就行了,
现在这个list中还有一个list,假设外面这个list是list1,里面这个list是list2,
在页面显示数据的时候都正常,提交时外面这个list1的数据能够正常提交,里面那个list2就只能提交一部分了
把jsp的一部分发上来吧,外面的叫result,里面的叫list,这两个list的get方法都重写过了
HTML code

<logic:present name="bodyForm" property="result">
  <logic:iterate id="result" name="bodyForm" property="result" indexId="idx">
    GROUP CODE:<html:text name="result" property="groupCd" indexed="true" />
    <div class="list" id="rsdiv">
      <table id="rstbl">
        <tr>
          <th>名称</th>
          <th>年齢</th>
          <th>金額</th>
        </tr>
        <logic:iterate id="list" name="result" property="list">
          <tr>
            <td>
              <html:text name="list" property="name" indexed="true" /><BR>
            </td>
            <td>
              <html:text name="list" property="old" indexed="true" /><BR>
            </td>
            <td>
              <html:text name="list" property="money" indexed="true" /><BR>
            </td>
          </tr>
        </logic:iterate>
      </table>
    </div>
    <html:text name="result" property="muiltMoney" indexed="true" /><BR><BR>
  </logic:iterate>
</logic:present>


也就是说第二个<logic:iterate>标签内的不能正常提交,看了一下生成的源码,也大概知道原因,但不清楚该怎么改,源码如下
HTML code

    GROUP CODE:<input type="text" name="result[0].groupCd" value="1">
    <div class="list" id="rsdiv">
      <table id="rstbl">
        <tr>
          <th>名称</th>
          <th>年齢</th>
          <th>金額</th>
        </tr>
        
          <tr>
            <td>
              <input type="text" name="list[0].name" value="name1"><BR>
            </td>
            <td>
              <input type="text" name="list[0].old" value="1"><BR>
            </td>
            <td>
              <input type="text" name="list[0].money" value="101"><BR>
            </td>
          </tr>
        
          <tr>
            <td>
              <input type="text" name="list[1].name" value="name7"><BR>
            </td>
            <td>
              <input type="text" name="list[1].old" value="7"><BR>
            </td>
            <td>
              <input type="text" name="list[1].money" value="107"><BR>
            </td>
          </tr>
        
          <tr>
            <td>
              <input type="text" name="list[2].name" value="name9"><BR>
            </td>
            <td>
              <input type="text" name="list[2].old" value="9"><BR>
            </td>
            <td>
              <input type="text" name="list[2].money" value="109"><BR>
            </td>