Spring实战4 (5)构建Spring Web应用程序

时间:2021-04-30 19:43:37

本章内容:

  • 映射请求到Spring控制器
  • 透明地绑定表单请求
  • 校验表单提交

1.Spring MVC起步

   跟踪Spring MVC的请求:

    Spring实战4 (5)构建Spring Web应用程序

搭建Spring MVC:

    配置DispatcherServlet

       Spring实战4 (5)构建Spring Web应用程序

        当部署到Servlet3.0容器中的时候,容器会自动发现它,并用它来配置Servlet上下文。getServletMappings(),它会将一个或者多个路径映射到DispatcherServlet上。在本例中,它映射的是“/”,这表示它会是应用的默认Servlet。它会处理进入应用的所有请求。

        为了理解其他的两个方法,我们需要理解DispatcherServlet和一个Servlet监听器(也就是ContextLoaderLister)的关系。当DispatcherServlet启动的时候,它会创建Spring应用上下文,并加载配置文件或配置类中声明的bean。在程序清单5.1的getServletConfigClasses()方法中,我们要求DispatcherServlet加载应用上下文时,使用定义在Webconfig配置类中的bean。但是在Spring Web应用中,通常还会有另外一个应用上下文,另外的应用上下文时由ContextLoaderListener创建的。我们希望DispatcherServlet加载包含Web组件的bean,如控制器、视图解析器以及处理器映射,而ContextLoaderListener要加载应用中的其他bean。这些bean通常是驱动应用后端的中间层和数据层组件。

 实际上AbstractAnnotationConfigDispatcherServletInitializer会同时创建DispatcherServlet和ContextLoaderListener.getServletConfigClasses()方法返回的带有@Configuration注解的类将会用来定义DispatcherServlet应用上下文中的bean。getRootConfigClasses()方法放回的带有@Configuration注解的类将会用来配置ContextLoaderListener创建的应用上下文中的bean。

    在本例中,根配置定义在RootConfig中,DispatcherServlet的配置声明在WebConfig中

启动Spring MVC    

    我们所能创建的最简单的Spring MVC配置就是一个带有@EnableWebMvc注解的类

    Spring实战4 (5)构建Spring Web应用程序


    搭建Spring MVC不要太纠结,在Spring Boot中Spring MVC是使用只需要导入Web的start POM和Thymeleaf包

2.编写基本的控制器

   @Controller:声明控制器

    @RequestMapping:声明要处理的请求

    接受请求的输入:     

        Spring MVC允许以多种方式将客户端中的数据传送到控制器的处理器方法中:    

        处理查询参数: @RequestParam()获取查询参数,当控制器的处理方法有某个查询参数时,url中不带会报404

        通过路劲参数接受输入: @PathVariable

        处理表单:使用表单提交数据,并使用对应的对象接收数据,使用POST方法

        检验表单:在控制器的处理方法上加上@Valid注解,并在对象上添加对应的验证,在处理方法参数中添加Error 参数,在验证请求后,盘点Error对象中的hasError属性是否为true,并执行对应的逻辑

        Spring实战4 (5)构建Spring Web应用程序