在Spring mvc中将值从jsp传递给控制器​​的最佳方法是什么?

时间:2014-11-14 03:34:30

标签: spring jsp spring-mvc

我有一个动态配置的jsp页面。通过不同的选择,页面具有不同的组件,就像下拉列表,列表框和日期时间等。对于一个选择,页面可能只有两个下拉列表,而另一个选择,页面有更多的输入字段。每个输入字段都有不同的名称。即使一个页面有两个下拉列表,这两个列表也有不同的名称。 只是想得到你的建议,在Spring MVC中将所有这些值传递给控制器​​的最佳方法是什么。

3 个答案:

答案 0 :(得分:0)

我会这样做:

  • JSP:将<FORM>标记中的所有输入字段(textbox / select / checkbox / radio)括起来,并设置表单的action属性以调用Controller。
  • 控制器:
    • 定义一个简单的Java bean类,其属性对应于
    • 形式的每个输入字段
    • 接受此类类型作为控制器中方法的参数,该方法将在<FORM>提交时调用,并使用@RequestBody注释参数。

有关完成布线的详细信息,请参阅Mapping the response body with the @ResponseBody annotation

答案 1 :(得分:0)

  1. 创建一个DTO来保存所有可能的表单元素

    Class MyFormData {
      private String name;
      private Double salary;
      private List<String> hobbies;
      ......
    }
    
  2. 在控制器中,使用@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,你就永远不会回头了。