我有一个编辑用户表单,其中包含文本字段(用户名,姓氏.. )和一组国家/地区。我对这个选择有问题,因为我不知道填充它的更好方法。我已尝试使用 jquery 成功填充,但我无法通过 commandName 选择默认值。
<form:form method="POST" commandName="user" action="registerUser.html">
<form:errors path="*" cssClass="errorblock" element="div" />
<spring:message code="app.user.username"/><form:input path="username" /><form:errors path="username" cssClass="error" /><br/>
<spring:message code="app.user.firstname"/> <form:input type="text" path="firstName" /> <form:errors path="firstName" cssClass="error"/><br/>
<spring:message code="app.user.password"/> <form:input type="password" path="password" /><form:errors path="password" cssClass="error"/><br/>
<spring:message code="app.user.repassword"/> <form:input type="password" path="confirmPassword" /><form:errors path="confirmPassword" cssClass="error"/><br/>
<spring:message code="app.user.email"/> <form:input type="text" path="email" /><form:errors path="email" cssClass="error"/><br/>
<spring:message code="app.user.country"/> <form:select path="isoCode" items="${countryList}"/><form:errors path="isoCode" cssClass="error"/><br/>
<input type="submit" value="Enviar" />
</form:form>
我看一下这个tutorial,所以我尝试了一个地图,但我不知道如何将数据返回到jsp中可访问,因为在本教程中使用的是SimpleFormController但是我不想为每个表单编写SimpleFormController。这是我的控制器返回表单的视图,我有另一个来捕获提交。
@RequestMapping(method=RequestMethod.GET, value="/editUserForm")
public String recordUserRequestHandler(ModelMap model) throws Exception {
model.addAttribute("user", new User());
Map<String, Map<String, String>> referenceData = new HashMap<String, Map<String, String>>();
Map<String, String> country = new LinkedHashMap<String, String>();
country.put("US", "United Stated");
country.put("CHINA", "China");
country.put("SG", "Singapore");
country.put("MY", "Malaysia");
referenceData.put("countryList", country);
return "EditUserForm";
}
是否可以将referenceData传递给要通过以下形式访问的jsp:select?
<spring:message code="app.user.country"/> <form:select path="isoCode" items="${countryList}"/><form:errors path="isoCode" cssClass="error"/><br/>
答案 0 :(得分:2)
此外,您不需要使用hashmap进行选择。我个人使用简单的List with beans来保存我的select选项。
public class ListOption { private String id; 私有字符串名称;
public ListOption(String id, String name) {
this.id = id;
this.name = name;
}
public ListOption() {
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
控制器中的
List<ListOption> selectOptions = new List<ListOption>();
// add Your options
selectOptions.add(new ListOption("id","value");
然后将isoCode对象放入具有所需(选定)值的模型中,然后spring将设置为将值标记为已选择。
在你的jsp中
<form:select path="isoCode" items="${countryList}" itemValue="id" itemLabel="name"/>