这是我的春季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标签来