在Spring MVC中,我想要一个带有下拉列表的下拉列表,它由域对象列表支持,但只显示对象中的一个字段。提交表单时,我希望能够检索整个对象。我可以这样做吗?在Spring MVC中,我可以使用后台对象进行有状态的下拉菜单吗?
回答
这显然是可能的,如果我理解正确的,你......
型号
public class Foo() {
private String result;
public String getResult() { return result; }
public void setResult(String result) { this.result = result; }
}
控制器
这是使用注解。如果你不明白这是什么,你应该查看Spring文档。 @ModelAttribute("fooResults")
将可供您的视图用于您的下拉元素。 @ModelAttribute("command") Foo foo
将自动“吸取”您在下拉列表中选择的任何内容。
@Controller
public class FooController() {
@ModelAttribute("fooResults")
public List<String> fooResults() {
// return a list of string
}
@RequestMapping(method = RequestMethod.GET)
public String get(@ModelAttribute("command") Foo foo) {
return "fooView";
}
@RequestMapping(method = RequestMethod.POST)
public String post(@ModelAttribute("command") Foo foo) {
// do something with foo
}
查看
使用表单标签库的魔力,可以绑定一个下拉(在form:select
)对模型结果的财产,并填充与fooResults
的项目。
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%>
<form:form commandName="command">
<form:select path="result">
<form:options items="${fooResults}" itemLabel="result" itemValue="result"/>
</form:select>
<input type="submit" value="submit"/>
</form>
这一切都假定你有种知道你在做什么:)如果你不这样做,检查出http://static.springsource.org/docs/Spring-MVC-step-by-step/
这篇文章解释了你想要做什么:http://blogs.credera.com/2009/01/22/spring-mvc-custom-property-editors/。我花了很长时间寻找完全相同的问题,并且在Credera上的AJ Angus有我在网上看到的最好的解释。总之,你必须告诉Spring如何将select标签上的字符串形式选项值转换回对象。这是通过将项目值作为对象的ID来完成的: 所以Spring现在拥有员工的ID,但是当用户单击提交时,Spring如何将ID更改回员工?这是PropertyEditor的手段,这Spring文档没有很好地解释:
public class EmployeeNamePropertyEditor extends PropertyEditorSupport {
EmployeeDAO employeeDAO;
public EmployeeNamePropertyEditor(EmployeeDAO employeeDAO) {
this.employeeDAO = employeeDAO;
}
public void setAsText(String text) {
Employee employee = new Employee();
employee = employeeDAO.getEmployee(Long.parseLong(text));
setValue(employee);
}
}
然后使用initBinder,让控制器知道属性编辑器存在:
@InitBinder
public void initBinder(WebDataBinder binder) {
binder.registerCustomEditor(Employee.class, new
EmployeeNamePropertyEditor(employeeDAO));
}
那么你就完全组!查看更好更详细的解释链接。
它的功能就像一个魅力 – 2012-04-25 08:23:38
- 1. Flash对象后的下拉菜单
- 2. 在MVC中使用下拉菜单5
- 3. 可点击的下拉菜单可以使用mouseleave吗?
- 4. 可以在状态机中进行状态转换吗?
- 5. 我可以在Vim中使用多行状态行吗?
- 6. jQuery的下拉菜单悬停状态
- 7. 从Umbraco后端动态“生成”下拉菜单可能吗?
- 8. 我可以在单个应用程序中使用Spring MVC和Spring WS吗?
- 9. 我可以在没有启动并行进程的情况下在Django中运行后台进程吗?
- 10. 在使用状态的行为后改变对象状态
- 11. Jquery/HTML下拉菜单悬停状态
- 12. 按状态排序下拉菜单
- 13. 我可以在IIS中禁用MVC会话状态吗?
- 14. 我可以使用C进行面向对象的编程吗?
- 15. 我如何创建使用jQuery的MVC中的菜单下拉菜单?
- 16. jquery cookie记住下拉菜单的最后状态
- 17. 我可以自动选择下拉菜单吗?
- 18. 用对象预填充下拉菜单
- 19. PHP - 使用下拉菜单对列表进行排序
- 20. 下拉菜单使用Javascript OnChange对MySQL查询进行排序?
- 21. 可以在Google Suggest下拉菜单中操作网站吗?
- 22. HTML:我可以标记/突出显示下拉菜单项吗?
- 23. 我可以使用CSS渲染这种类型的下拉菜单吗?
- 24. AngularJS代替使用两个ng显示和两个下拉菜单我可以使用一个下拉菜单
- 25. 我可以使Flash/Flex下拉菜单在Flash对象边界之外延伸吗?
- 26. w3css - 下拉菜单中的可靠下拉菜单
- 27. 我可以在对象名称中使用单引号吗?
- 28. 在MVC中构造下拉菜单?
- 29. 菜单状态 - ASP.Net MVC
- 30. 我有麻烦让MVC中的下拉菜单返回数据
这是行不通的,至少在2.5版本。我们需要制作自定义属性编辑器,如下所示ans – 2012-04-25 08:24:57