这是我的春季MVC JSP代码段

<c:forEach var="trackRecord"  varStatus = "number" items="${contractDetails.trackRecordEntries}" >
  <tr class="tafont">
      <td class="varcar"><form:input readonly = "true" name = "installmentNo" id = "installmentNo" path="trackRecordEntries[${number.index}].installmentNo"/></td>
      <td class="varcar"><form:input readonly = "true" name  = "installmentAmount" id = "installmentAmount" path = "trackRecordEntries[${number.index}].installmentAmount"/></td>
      <td class="varcar"><form:input readonly = "true" name = "dueDate" id = "dueDate" path="trackRecordEntries[${number.index}].dueDate"/></td>
      <td class="varcar"><form:input cssClass="recievedDate" name = "recievedDate" id = "recievedDate" path="trackRecordEntries[${number.index}].recievedDate"/></td>
      <td class="varcar"><form:input id = "recieptAmount" name = "recieptAmount" path="trackRecordEntries[${number.index}].recieptAmount"/></td>
      <td class="varcar"><form:input id = "delayDays" name = "delayDays" path="trackRecordEntries[${number.index}].delayDays"/></td>
 </tr>
 </c:forEach>


它将bean的arraylist绑定到jsp页面。问题是我不能将name标签与<form:input>属性一起使用。我需要name属性,因为我想使用document.getElementsByName("name");执行javascript验证

任何解决方案?

最佳答案

当您使用Spring标记(即<form:input>)标记时,则不能在spring标记中使用名称属性。如果要使用name属性,则必须使用标记的path属性,该属性在内部将其值转换为HTML标记的name属性如下 :

<c:forEach var="trackRecord"  varStatus = "number" items="${contractDetails.trackRecordEntries}" >
  <tr class="tafont">
      <td class="varcar"><form:input readonly = "true" path = "installmentNo" id = "installmentNo" /></td>
      <td class="varcar"><form:input readonly = "true" path  = "installmentAmount" id = "installmentAmount" /></td>
      <td class="varcar"><form:input readonly = "true" path = "dueDate" id = "dueDate" /></td>
      <td class="varcar"><form:input cssClass="recievedDate" path = "recievedDate" id = "recievedDate" /></td>
      <td class="varcar"><form:input id = "recieptAmount" path = "recieptAmount" /></td>
      <td class="varcar"><form:input id = "delayDays" path = "delayDays" /></td>
 </tr>
 </c:forEach>


并且您必须将所有这些路径变量定义到表单中,如下所示:

public class UoyrForm {

    private String[] installmentNo;
    private String[] installmentAmount;
    private String[] dueDate;
    private String[] recievedDate;
    private String[] recieptAmount;
    private String[] delayDays;
}


或者您可以使用简单的HTML标签来

09-10 09:53
查看更多