En mi controlador:¿Cómo configuro el valor seleccionado en un formulario Spring MVC: seleccione desde el controlador?
@Controller
public class UserController {
@RequestMapping(value="/admin/user/id/{id}/update", method=RequestMethod.GET)
public ModelAndView updateUserHandler(@ModelAttribute("userForm") UserForm userForm, @PathVariable String id) {
Map<String, Object> model = new HashMap<String, Object>();
userForm.setCompanyName("The Selected Company");
model.put("userForm", userForm);
List<String> companyNames = new ArrayList<String>();
companyNames.add("First Company Name");
companyNames.add("The Selected Company");
companyNames.add("Last Company Name");
model.put("companyNames", companyNames);
Map<String, Map<String, Object>> modelForView = new HashMap<String, Map<String, Object>>();
modelForView.put("vars", model);
return new ModelAndView("/admin/user/update", modelForView);
}
}
el campo Seleccionar forma en mi opinión:
<form:form method="post" action="/admin/user/update.html" modelAttribute="userForm">
<form:select path="companyName" id="companyName" items="${vars.companyNames}" itemValue="id" itemLabel="companyName" />
</form:form>
Fue mi entendimiento de que el grano de forma respaldo se asigna basándose en el atributo modelAttribute en el formulario. Obviamente me falta algo aquí.
Parece que el problema no estaba relacionado con mi configuración.El problema era que itemValue se estableció en la propiedad de identificación de la compañía, mientras que la comparación se realizaba con la propiedad del nombre de la empresa en mi bean de respaldo. Entonces los dos no eran iguales, y por lo tanto, no se estableció ningún elemento para ser seleccionado. –