나의 양식은 하나 text field
한 dropdown list
있다 .When 내 폼을로드 list of values in the dropdown list
이 처음.스프링 MVC 양식 - 드롭 다운 목록에 항목이 없습니까?
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 클래스가 될 것입니다,의
dropdown
목록에있는 값을 복원하는 방법
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;
}
}
때 POST 방법을 통해 내 양식 다시로드 컨트롤러의?
하지만 같은 내 코드에서와 같이 map.addAttribute("age",(ArrayList<String>)getList.ageList());
을 추가하여이 문제를 해결,
if(result.hasErrors()){
System.out.println("Form has some errors !!!!!!!!");
map.addAttribute("age",(ArrayList<String>)getList.ageList());
return "ApplicationForm";
}
그러나 쉽게 할 수있는 다른 방법이?
우리의 스택 구성원이 날 도움이되기를 바랍니다.
감사를 통해 컨트롤러에 주입. 그것은 나를 도왔고 잘 작동합니다. 당신을 위해'+ 1' ... –