我有一个动态配置的jsp页面。通过不同的选择,页面具有不同的组件,就像下拉列表,列表框和日期时间等。对于一个选择,页面可能只有两个下拉列表,而另一个选择,页面有更多的输入字段。每个输入字段都有不同的名称。即使一个页面有两个下拉列表,这两个列表也有不同的名称。 只是想得到你的建议,在Spring MVC中将所有这些值传递给控制器的最佳方法是什么。
答案 0 :(得分:0)
我会这样做:
<FORM>
标记中的所有输入字段(textbox / select / checkbox / radio)括起来,并设置表单的action属性以调用Controller。 <FORM>
提交时调用,并使用@RequestBody
注释参数。有关完成布线的详细信息,请参阅Mapping the response body with the @ResponseBody annotation。
答案 1 :(得分:0)
创建一个DTO来保存所有可能的表单元素
Class MyFormData {
private String name;
private Double salary;
private List<String> hobbies;
......
}
在控制器中,使用@ResponseBody
@RequestMapping(value = "/something", method = RequestMethod.POST)
public void handle(@RequestBody MyFormData formData, Model model) {
...
}
答案 2 :(得分:0)
如果您的用户界面非常动态,那么您也可以选择Javascript解决方案。 Spring MVC将简单地接收并返回JSON为@RequestBody和@ResponseBody,而不用担心基本的MVC。
JSP只能在动态UI行为方面为您提供帮助。一旦你熟悉了JQuery和/或AngularJS,你就永远不会回头了。