我不知道要完美地构造我的问题,但我试图从HTML多行窗体中获取数据,我不想使用绑定对象和我不想在我的请求处理方法上有很多@RequestParam
参数。我想表单提交返回一个int数组,但我得到以下错误HTTP Status 400 - Required int[] parameter 'department' is not present
。我试着写形式以同样的方式人会做在PHP这样的:如何处理没有绑定对象的多行窗体在春天MVC
<form action="processForm" method="POST">
<select name="department[]">
<option value="NONE">---SELECT---</option>
<c:forEach items="${departments}" var="department">
<option value="${department.getId()}">${department.getName()}</option>
</c:forEach>
</select>
<select name="department[]">
<option value="NONE">---SELECT---</option>
<c:forEach items="${departments}" var="department">
<option value="${department.getId()}">${department.getName()}</option>
</c:forEach>
</select>
<select name="department[]">
<option value="NONE">---SELECT---</option>
<c:forEach items="${departments}" var="department">
<option value="${department.getId()}">${department.getName()}</option>
</c:forEach>
</select>
<select name="department[]">
<option value="NONE">---SELECT---</option>
<c:forEach items="${departments}" var="department">
<option value="${department.getId()}">${department.getName()}</option>
</c:forEach>
</select>
</form>
我控制器请求映射方法有提前如下
@Request(value = "/form",nethod = RequestMethod.GET)
public String renderForm(){
return "form"
}
@Request(value = "processForm", method = RequestMethod.POST)
public String processForm(@RequestParam("department") int [] department){
for (int i=0;i<department.lenth;i++){
System.out.println(department[i]);
}
}
感谢你。
始终是固定的4所选择的形式? –
没有我要添加JavaScript,以允许用户添加尽可能多的行,因为他们需要 – Piet
如果你只是有一个或几个变量来使用getParameterValues,它更简单,它不能错误int []部门=请求。 getParameterValues(“部门”),记得从你的html中删除[]所以name =“department” –