Java 在Spring MVC中使用Model和@ModelAttribute

Java 在Spring MVC中使用Model和@ModelAttribute,java,spring,jsp,spring-mvc,modelattribute,Java,Spring,Jsp,Spring Mvc,Modelattribute,我是SpringMVC新手,正在尝试将Struts2应用程序转换为SpringMVC。 现在有很多选项来处理请求参数和设置要渲染的数据。 让我用以下代码来解释: @RequestMapping("/sales" public Class SalesController{ @AutoWired ISaleService saleService; ... ///getters and sett

我是SpringMVC新手,正在尝试将Struts2应用程序转换为SpringMVC。 现在有很多选项来处理请求参数和设置要渲染的数据。 让我用以下代码来解释:

    @RequestMapping("/sales"
    public Class SalesController{
          @AutoWired 
          ISaleService saleService;
          ...
               ///getters and setters for service instance.omitted for brevity
          ...
          @RequestMapping("/")
          public String viewRoles(@ModelAttribute SaleBean saleBean,
          Map<String,Object> model){
             List<Sale> sales = getSaleService().getAllSales();
             model.put("sales",sales); //Option 1 to render sales on jsp form

             SaleBean saleBean = new SaleBean();
             saleBean.setSales(sales); //option 2 to render sales on jsp form
             model.put("saleBean",saleBean)   
          } 
    }
在上面的示例中,我展示了两个选项,它们都可以很好地工作,并且我可以在JSP上呈现销售信息

1.当我使用@modeldattribute作为第二个参数时,是否真的需要通常用于将数据放在传出响应上以便在JSP上呈现的模型参数

2.我是否需要在代码的选项2中显式实例化SaleBean类?如果它已经为空,spring会实例化它吗


3.我是否需要显式地将saleBean放入模型中?从spring文档来看,@Modelattribute对象似乎也隐式地放入模型中。

1-我不理解这个问题;2-spring将始终实例化@ModelAttribute bean并在其上绑定请求参数;3-@modeldattribute将自动包含在请求中attributes@PavelHoral1-换句话说,如果我已经有@modeldattribute,并且正如您所说的,它将始终作为响应,那么我是否总是需要模型映射?如果是这样,我可以在JSP中使用它而不显式地将其放入模型中吗?我正在包装我的Salebea中JSP上显示的所有内容。如果您不需要其他模型属性,则不需要将模型作为方法参数。@PavelHoll Ok。所以最后,这意味着,如果我在SaleBean中包装JSP上显示的所有内容,然后我将其用作ModelAttribute,那么1我不需要使用Model ma作为另一个参数,2我不需要显式地将SaleBean参数放入模型中,以将其放在JSP上。它将被隐式地提供,对吗?是的,这是正确的。