Javascript struts 2保存动态表对象

Javascript struts 2保存动态表对象,javascript,struts2,iterator,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=

使用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按钮时,如何在服务器端为该行生成对象持有者?服务器端如何知道cient端添加了多少行?

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


您可以通过发出Ajax调用、创建对象并返回HTML以及项目ID等方式在单击时创建服务器端对象,但您的问题并不清楚您是否真的想这样做。

是的,您是对的,我需要通过调用Ajax在单击按钮AddRow上创建服务器端对象。因为我是Ajax新手,你有没有类似的代码来完成这个任务?我只是知道Spring提供了一个API来处理表中的动态行。有人知道struts 2有类似的功能吗?@user1006080我真的不知道那是什么。S2具有自动类型转换,包括使用特定于应用程序的类型填充列表。