我的表单有一个text field
和一个dropdown list
。当我的表单第一次加载时,有一个list of values in the dropdown list
.
如果我正在提交form
,并且我的表单有任何errors
,我会尝试返回相同的表单以显示错误并重新提交丢失的数据。
但是如果我的表单 reloads
通过 的POST
方法controller
,下拉列表中没有值。
我的弹簧控制器,
@Controller
public class FormController {
private ListStore getList;
@RequestMapping(value="/ApplicationForm.html",method=RequestMethod.GET)
public String displayForm(@ModelAttribute UserData userData,ModelMap map){
map.addAttribute("age",(ArrayList<String>)getList.ageList());
return "ApplicationForm";
}
@RequestMapping(value="/ApplicaitonForm.html",method=RequestMethod.POST)
public String displayFormDetails(@Valid UserData data,BindingResult result,ModelMap map,@RequestParam(value="name",required=true) String name,@RequestParam("age") String age){
if(result.hasErrors()){
System.out.println("It has some errors !!!!!!!!");
return "ApplicationForm";
}
map.addAttribute("name", name);
map.addAttribute("age", age);
return "DisplayFormDetails";
}
}
我的ListStore课程将是,
public class ListStore {
public List<String> ageList(){
LinkedList<String> list = new LinkedList<String>();
list.add("20 to 25 years");
list.add("25 to 35 years");
list.add("above 35 years");
return list;
}
}
dropdown
当我的表单通过控制器的 POST 方法重新加载时,如何恢复列表中的值?
但是我通过 map.addAttribute("age",(ArrayList<String>)getList.ageList());
在我的代码中添加 as 来解决这个问题,
if(result.hasErrors()){
System.out.println("Form has some errors !!!!!!!!");
map.addAttribute("age",(ArrayList<String>)getList.ageList());
return "ApplicationForm";
}
但是还有其他方法可以轻松做到这一点吗?
希望我们的堆栈成员能帮助我。