在我的表格中,我有一行复选框,告诉控制器是否必须包含该表格的特定行或不包含该行。该复选框与其他行没有关系。我尝试按以下方式添加它:
<form:form id="fee" method="post" modelAttribute="clientForm" commandName = "clientForm"
action="<%= request.getContextPath().toString()%>/addFee.do">
<TABLE>
<tr>
<c:forEach var="type" items="${clientInfo}" varStatus="status">
<td><form:checkbox class="editable${ifeeCount}" path="includeFeeValue" value="false"/> </td>
<td>feeType<c:out value = "${status.index}"/></td>
<td>Source Fee<c:out value = "${status.index}"/></td>
<td><form:input class="editable${ifeeCount}" disabled="true" path="overriddenFee" /></td>
<td><form:errors path="overriddenFee" cssClass="error" /></td>
</c:forEach>
</tr>
</TABLE>
在我的表单中,我列出了private ArrayList<String> includeFeeValue;
我试图在spring控制器类中检索它,如下所示:
@RequestMapping(value="/addFee.do",method = RequestMethod.POST)
protected @ResponseBody ModelAndView selectValues(@ModelAttribute("clientForm") PaswFeeMaintenanceForm MyMaintForm ) throws Exception {
for(int i=0;i<MyMaintForm.getIncludeFeeValue().size();i++){
System.out.println("Checkbox : "+MyMaintForm.getIncludeFeeValue().get(i)+ " of "+i);
}
}
我提交表单后,会在此处null pointer exception
抛出MyMaintForm.getIncludeFeeValue().size()
。
你能告诉我这里缺少什么吗?
答案 0 :(得分:1)
删除disabled='true'
,它会起作用。我的文本字段遇到了同样的问题,属性被禁用为真。
并使用private String[] includeFeeValue
代替List
。
答案 1 :(得分:0)
当您的复选框被禁用时,ans禁用的元素值永远不会流向控制器或Servlet。我建议你删除一个禁用的属性。我希望它会起作用。