struts 2保存动态表对象

时间:2011-10-20 21:28:48

标签: javascript struts2 iterator

使用s2迭代器标签,我可以毫无问题地显示表格。我有两个按钮用Javascript添加行和删除行。下面是jsp页面的片段

<s:iterator value="entities" status="outerStat">
  <tr>
    <TD><input type="checkbox" name="chk"/></TD>
    <TD>
      <table width="100%" cellspacing="4" cellpadding="0" border='0'>
        <s:textfield name="entities[%{#outerStat.index}].entityName" value="%{entityName}"/>
      </table>
    </TD>
    <TD>
      <table width="100%" cellspacing="4" cellpadding="0" border='0'>
        <s:select  list="entityTypes" value="%{entityType}"/>
      </table>
    </TD>
    <TD>
      <table width="100%" cellspacing="4" cellpadding="0" border='0'>
        <s:textarea  name="entities[%{#outerStat.index}].sqlStmt" cols="120" rows="4"  maxlength="4000" value="%{sqlStmt}"/>
      </table>
    </TD>
  </tr>
</s:iterator>

我的问题是,每次单击AddRow按钮时,如何在服务器端为该行生成对象持有者?服务器端如何知道在客户端添加了多少行?

1 个答案:

答案 0 :(得分:0)

正如您所示,不会为每行创建一个服务器端对象单击该按钮。您正在创建表单 - 在提交表单之前,不会创建/保留服务器端对象。如果您需要保证订单,则需要为“name”属性的数组表示法保留一个JavaScript计数器。

可以通过进行Ajax调用,创建对象,并返回HTML以及项目的ID或其他内容来创建服务器端对象,但是你的问题并不清楚如果这就是你真正想做的事情。