我不知道要完美地構造我的問題,但我試圖從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」 –