【问题标题】:Spring MVC Easy way to pass @RequestParam annotated arguments to modelSpring MVC 将 @RequestParam 注释参数传递给模型的简单方法
【发布时间】:2014-02-21 01:25:54
【问题描述】:

我想以一种简单的方式将许多带有@RequestParam 注释的参数传递给模型对象。

目前,我看到了两种选择:

  1. 您可以手动完成(不那么容易,如下示例)
  2. 您可以为相关参数创建命令对象,并将该对象传递给您的模型。

我正在寻找第三种方法,它会自动为我完成此操作。

@RequestMapping
public void handle(@RequestParam String p1, @RequestParam String p2,
       @RequestParam String p3, @RequestParam String p4, Model model) {
     model.addAttribute("p1",p1);
     model.addAttribute("p2",p2);
     model.addAttribute("p3",p3);
     model.addAttribute("p4",p4);
}

我需要这个的主要原因是在 POST 处理程序中传递参数以在发生错误时轻松地刷新属性。

更新: @ModelAttribute 方法(或者指定一个没有它的bean,我认为当你不给@ModelAttribute 一个值时它们基本相同)实际上是我提到的第二种方法在问题中。我正在寻找我提到的方法之外的其他方法。

【问题讨论】:

标签: java spring spring-mvc


【解决方案1】:

我更喜欢使用

@RequestMapping
public void handle(BeanDTO p1, Model model ){
    model.addAttribute("Bean",p1);
} 

它取所有与属性bean匹配的参数并放置

classs BeanDTO {    
    private String p1;
    private String p2;
    private String p3;
} 

对不起,没有@RequestBody

检查这个。 Spring MVC bean mapping to HTTP GET request parameters similar to @BeanParam

【讨论】:

    【解决方案2】:

    我会这样做。其中 P 是带有请求参数的 java bean

    @RequestMapping
        public ModelAndView handle(@ModelAttribute("p") P p) 
        {
          if (validationerror){
              return new ModelAndView("index","p",p);
          }
          return new ModelAndView("success");
        }   
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-08-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-04
      • 1970-01-01
      相关资源
      最近更新 更多