1、pom.xml
XML<dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> </dependency> <dependency> <groupId>jakarta.platform</groupId> <artifactId>jakarta.jakartaee-web-api</artifactId> </dependency> </dependencies>
2、web.xml
XML<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" version="4.0"> <servlet> <servlet-name>DispatcherServlet</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:springmvc.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>DispatcherServlet</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> </web-app>
3、springmvc.xml
XML<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/mvc https://www.springframework.org/schema/mvc/spring-mvc.xsd"> <context:component-scan base-package="com.atguigu.springmvc"/> <!--开启SpringMVC的注解驱动功能。这个配置也被称为SpringMVC的标配--> <!--标配:因为SpringMVC环境下非常多的功能都要求必须打开注解驱动才能正常工作--> <mvc:annotation-driven/> <!--加入这个配置,SpringMVC就会在遇到没有@RequestMapping的请求时放它过去--> <!--所谓放它过去就是让这个请求去找它原本要访问的资源--> <!--<mvc:default-servlet-handler/>--> </beans>
- 如果没有开启<mvc:default-servlet-handler>控制台会报 org.springframework.web.servlet.DispatcherServlet.noHandlerFound No mapping for GET /index.html
4、index.html
html<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <h1>静态资源放行</h1> </body> </html>
5、<mvc:annotation-driven>
<mvc:annotation-driven/>
是Spring MVC的一个标签,用于启用注解驱动的配置。这个标签在Spring配置文件中用于自动注册一些处理器,如消息转换器、参数解析器等,以便使用注解(如@RequestMapping,@RequestParam等)来定义请求处理方法。在Spring 3.0版本之后,
<mvc:annotation-driven/>
标签被引入,用于替代早期版本的<bean id="annotationHandlerMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"/>
和<bean id="annotationParameterHandler" class="org.springframework.web.bind.annotation.support.HandlerMethodArgumentResolver"/>
配置。使用
<mvc:annotation-driven/>
标签可以简化配置并提高代码的可读性。例如:
XML<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="http://www.springframework.org/schema/mvc" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd"> <!-- 启用注解驱动 --> <mvc:annotation-driven/> <!-- 其他配置 --> ... </beans>
请注意,如果你使用Java配置而不是XML配置,你也可以使用
@EnableWebMvc
注解来启用注解驱动的配置。例如:
java@Configuration @EnableWebMvc public class WebConfig { // 其他配置 }
<mvc:annotation-driven/>
是Spring MVC的一个标签,用于启用注解驱动的配置。它允许Spring MVC自动检测和处理类路径下的控制器类,并将它们注册为处理器。这个标签在Spring MVC的配置文件中使用,用于自动配置一些默认的组件,如请求映射处理器、消息转换器和参数解析器等。这个标签是Spring 3.0版本引入的,它简化了Spring MVC的配置,使得开发人员可以更快速地开发和部署Web应用程序。通过使用注解,开发人员可以更方便地定义请求处理方法、参数和返回值等。
在使用
<mvc:annotation-driven/>
标签时,需要注意以下几点:
- 确保你已经导入了Spring MVC的依赖库,并且你的Spring版本支持该标签。
- 在配置文件中添加
<mvc:annotation-driven/>
标签,并确保它位于正确的位置。通常情况下,它应该位于Spring配置文件的根元素下。- 确保你的控制器类已经使用了正确的注解来定义请求处理方法、请求映射等。例如,使用
@RequestMapping
注解来定义请求映射路径和处理方法。- 如果你需要配置其他组件或自定义处理器,可以通过其他方式进行配置,例如使用
<bean>
元素来手动配置处理器。总之,
<mvc:annotation-driven/>
标签是Spring MVC中一个非常方便的配置工具,它可以帮助开发人员更快速地开发和部署Web应用程序。mvc:annotation-driven/是Spring MVC中的一个XML配置,它的作用是启用Spring MVC的注解驱动。通过该配置,Spring MVC将会自动注册一些默认的组件,如RequestMappingHandlerMapping、RequestMappingHandlerAdapter、ExceptionResolver等,这些组件能够支持常见的Spring MVC注解,如@Controller、@RequestMapping、@RequestParam、@ResponseBody等。
注解驱动的方式更加方便和简洁,不需要显式地配置一些传统的组件,例如HandlerMapping和HandlerAdapter,而是通过注解来完成请求与处理器的映射和适配。所以,使用mvc:annotation-driven/可以让我们在Spring MVC中更加便捷地使用注解的方式进行开发。
<mvc:annotation-driven/>是SpringMVC中的一个配置标签,用于启用基于注解的控制器和参数解析器。具体作用包括:1. 支持@Controller注解和@RequestMapping注解:在SpringMVC中,@Controller注解用于标记一个类为控制器,而@RequestMapping注解用于标记控制器中的方法为处理器方法。使用<mvc:annotation-driven/>将会自动注册DispatcherServlet,使其能够扫描@Controller注解和@RequestMapping注解,并将其转换为处理请求的控制器和处理器方法。
2. 支持数据绑定和数据验证:<mvc:annotation-driven/>还可以注册数据绑定和数据验证的相关组件,如ConversionService、FormatterRegistry和Validator等。这些组件可以帮助将请求参数绑定到控制器方法的参数上,并对参数进行有效性验证。
3. 支持消息转换:<mvc:annotation-driven/>还可以自动注册消息转换器,用于将请求和响应的内容转换为Java对象或其他格式,如JSON、XML等。
综上所述,<mvc:annotation-driven/>可以简化SpringMVC的配置,提高开发效率,同时也能提供更好的功能支持。