繁体   English   中英

Spring MVC中控制器方法参数中的模型模型

[英]Model model in Controller's method parameters in Spring MVC

这可能是一个非常幼稚的问题,但是作为Spring MVC框架的初学者,我想知道而不是返回ModelAndView Object,我们可以从Controller的方法定义中返回一个jsp名称吗? 同样,显然所有方法似乎都将模型模型作为参数。 它们是什么意思?

@RequestMapping(value = "/", method = RequestMethod.GET)
     public String home(Locale locale, Model model) {

        logger.debug("Entering renderShoeStoreApplication method");

        //model.addAttribute("orderList", orderList);

        logger.debug("Exiting renderShoeStoreApplication method");
        return "home";
    }

我想不是我们也可以写

/*  
    @RequestMapping(value = "/", method = RequestMethod.GET)
     public ModelAndView home(Locale locale, Model model) {

        logger.debug("Entering renderShoeStoreApplication method");

        //model.addAttribute("orderList", orderList);

        logger.debug("Exiting renderShoeStoreApplication method");
        ModelAndView homeModel = new ModelAndView("home");
        return homeModel ;
    }*/

请说明基本知识。 提前致谢。

我想你有两个问题

  1. 所有的方法似乎都以Model模型为参数

这不一定是必需的,您可以将http请求作为参数,并且可以从请求参数派生模型。 最终,spring mvc会为您执行此操作,以使bean验证后使用绑定结果使工作变得更加简单。

 @RequestMapping(value = "/", method = RequestMethod.GET)
 public String home(Locale locale, HttpRequest request) {
       String name = request.getParamter("name");
       // you can manually derive your model here
 }
  1. 我们可以仅从Controller的方法定义中返回一个jsp名称吗?

您可以在控制器方法中传递just jsp名称(如果已将视图解析器配置为处理此名称的话)。

<bean
    class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="prefix">
        <value>/WEB-INF/views/</value>
    </property>
    <property name="suffix">
        <value>.jsp</value>
    </property>
</bean>

如果从控制器返回字符串,则默认情况下,控制器直接指向视图解析器以解析视图。 请检查此SO 帖子

您可以浏览以下资源,以了解Spring MVC的基础知识,首先是Spring MVC社区的官方文档 ,以及使用以下链接快速了解POC的一些技巧。

  1. http://earldouglas.com/publications/barebones-spring-mvc/

  2. http://spring.io/guides/gs/serving-web-content/

  3. http://www.mkyong.com/tutorials/spring-mvc-tutorials/

    为什么将模型作为参数传递给控制器​​方法,以及ModelView对象的用途是什么?。一旦您对Spring MVC架构有了基本的了解,所有这些问题都将得到解答。

    是的,如果该方法没有要返回的任何数据,则控制器方法可以简单地返回一个String,该String表示应该呈现的视图。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM