In Spring controller , write below code to bind the <form:select />, <form:option /> or <form:options />, we will use bellow value to render HTML form:select box :
@Controller
@RequestMapping("/")
public TestController{
protected ModelAndView createSelectWithValue(HttpServletRequest request) throws Exception {
Map cData = new HashMap();
Map<String,String> countryList = new LinkedHashMap<String,String>();
countryList.put("TX", "Texas"); countryList.put("IN", "India"); countryList.put("NY", "New York"); countryList.put("NJ", "New Jessy"); cData.put("cList", countryList);
ModelAndView mav=new ModelAndView();
mav.addAttribute("selectedCountry","IN");
mav.addAttribute("cList",cData);
mav.setView("index");
return mav;
}
}
index.jsp
1) Simply display <form:select />
<form:select path="c" items="${cList}" />
OR
<form:select path="c"> <form:options items="${cList}" /> </form:select>
OR
<form:select path="c"> <form:option value="NONE" label="--- Select ---"/> <form:options items="${cList}" /> </form:select>
2) Load with selected value specified
<select id="country" name="
country
"> <option value=""></option>
<c:forEach items="${
cList}" var="name"> <c:when test="${name[0]==
selectedCountry}"> <option value="${
name
[0]}" selected>${
name
[1]}</option> </c:when> <c:otherwise> <option value="${
name[0]
}" >${
name
[1]}</option> </c:otherwise> </c:forEach> </select>