SpringMVC獲取表單批量提交資料
阿新 • • 發佈:2018-12-30
關鍵點:封裝一個JavaBean的List
原始JavaBean
public class Person {
//省略getter、setter,Serialiable介面實現,toString(),equals(),HashCode()
private String username;
private String password;
private String money;
}
封裝JavaBean的另一個Bean
public class PersonListModel {
private List<Person> personList;
//省略相關setter、getter
}
//處理方法
@RequestMapping(value="/listPerson.do",method=RequestMethod.GET)
public ModelAndView listPersonGET() {
//得到所有Person,封裝至Model,供前臺顯示
List<Person> list = personService.getAllPersons();
ModelAndView mav = new ModelAndView("person/listPerson"); //設定檢視名
mav.addObject("list", list);
return mav;
}
表單jsp頁面,name值需要和Controller層接收引數中的JavaBean要一致,如這裡的:personList。
<form action="${bastPath}/person/listPerson.do" method="post">
<c:forEach items="${list}" var="person" varStatus="listIndex" >
<br/>${person.username}<br/>
<input name="personList[${listIndex.index}].money" type="text" value="person.money"/>
</c:forEach>
<input name="submit" value="提交">
</form>
//使用引數PersonListModel personModel獲取jsp頁面表單批量提交的資料
@RequestMapping(value="/listPerson.do",method=RequestMethod.POST)
public ModelAndView listPersonPOST(PersonListModel personModel) {
//於是表單中的personList就會set給PersonListModel 中的欄位personList
List<Person> personList = personModel.getPersonList();
for(Person person:personList ) { //批量修改物件的某個屬性
personService.updatePerson(person.money);
}
}