控制器中的列表大小为0。 JS文件只是提交表单,jsp文件正在迭代在页面加载时填充的hashMap列表,第三个是在jsp页面中单击提交按钮后接收列表的控制器。
JS file:
function getFormDetails(){
document.forms[0].action=requestPath+"/admin/updateInterfaceParams.do";
document.forms[0].submit();
}
JSP file:
<form:form method="post" cssStyle="float:left;">
<c:forEach var="list" items="${manageInterfaceList }" varStatus="stat">
<c:forEach var="entry" items="${list}">
<c:if test="${entry.key eq 'A'}">
<input type="hidden" name="interfaceList[${stat.index}].key"
value="${entry.key}" />
<span>Key:</span>
<input type="text" id="keyAjax" name="interfaceList[${stat.index}].value"
value="${entry.value}"/>
</c:if>
<br />
<c:if test="${entry.key eq 'B'}">
<input type="hidden" name="interfaceList[${stat.index}].key"
value="${entry.key}" />
<span>Password:</span>
<input type="text" id="password"
name="interfaceList[${stat.index}].value" value="${entry.value }"/>
<br />
</c:if>
</c:forEach>
</c:forEach>
<span><input type="button"
name="Submit" value="Submit" onclick="getFormDetails();"/></span>
</form:form>
Controller:
@RequestMapping(value = "/updateInterfaceParams.do")
public ModelAndView updateInterfaceParams(HttpServletRequest request,
@ModelAttribute ArrayList<HashMap<String,String>> manageInterfaceList) {
ModelMap modelMap = new ModelMap();
try {
System.out.println(manageInterfaceList.size());
} catch (Exception e) {
modelMap.addAttribute("errorMessage",e.getMessage());
}
return new ModelAndView("manageinterface", modelMap);
}
有关列表大小为何为0以及如何在控制器中获取列表元素的任何建议。
答案 0 :(得分:0)
因为表单没有与表单支持对象相关联,所以需要指定表单元素的commandName
属性 - 这将是包含列表的pojo。