2013-08-12 191 views
0

我正在使用JQuery对话框来显示<form:form>以标识/选择要从查询添加的特定记录。表格中的每个记录都应该包含一个按钮,作为所述表格的触发器以添加所选记录。下面的代码说明了代码的结构:Spring Roo单表单多表单提交数值提交ID

<form:form action="POST" action="form_action" modelAttribute="form"> 
    <div><form:hidden path="selectedDate" /> 
     <!-- Other components relating to the parent record --> 
    </div> 
    <div> 
     <!-- The detail of the parent --> 
     <table> 
      <thead> 
       <th>Name</th> 
       <th></th> 
      </thead> 
      <tbody> 
       <c:forEach items="${items}" var="itr"> 
        <tr> 
         <td>${itr.name}</td> 
         <td> 
          <input type="submit" value="Select" name="${itr.id}" /> 
         </td> 
        </tr> 
       </c:forEach> 
      </tbody> 
     </table> 
    </div> 
</form:form> 

有没有办法让id后参数来表示所选择的记录?

回答

0

您可以将提交按钮的ID和名称设置为正确的Spring MVC输入名称,并将该值设置为正确的选定ID值。事情是这样的:

<form:form action="POST" action="form_action" modelAttribute="form"> 
    <div><form:hidden path="selectedDate" /> 
     <!-- Other components relating to the parent record --> 
    </div> 
    <div> 
     <!-- The detail of the parent --> 
     <table> 
      <thead> 
       <th>Name</th> 
       <th></th> 
      </thead> 
      <tbody> 
       <c:forEach items="${items}" var="itr" varStat="itrStat"> 
        <tr> 
         <td>${itr.name}</td> 
         <td> 
          <input type="submit" value="${itr.id}" name="form.items[${itrStat.index}]" id="form.items${itrStat.index}" /> 
         </td> 
        </tr> 
       </c:forEach> 
      </tbody> 
     </table> 
    </div> 
</form:form> 

所有的Spring所关心的只是贴在表格上的名字在窗体标签,并在你的控制器相应的处理程序定义模型属性某些属性相匹配。

+0

有没有一种方法的价值可以'提交'而不是'$ {itr.id}'? –

+0

皮肤有很多种方法去皮肤。但是,将按钮的值设置为“提交”意味着后端将接收“form.items”的值为“Submit”的值。如果你想让按钮仍然有这个值(不知道为什么,但确定),那么你很可能必须有一个隐藏的领域,或者可能有多个隐藏的领域,并让它的价值后端而不是按钮,只需使用按钮触发提交。 – CodeChimp