搭建Spring MVC环境并配置核心代码,可以通过两种方式实现:零配置形式和XML配置形式。以下是这两种方式的详细步骤和代码示例。 ### 1. 使用零配置形式(基于Java配置) #### 1.1 创建Maven项目 首先,创建一个Maven项目,并在`pom.xml`文件中添加必要的依赖项: ```xml <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.example</groupId> <artifactId>springmvc-demo</artifactId> <version>1.0-SNAPSHOT</version> <packaging>war</packaging> <dependencies> <!-- Spring MVC --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>5.3.10</version> </dependency> <!-- Servlet API --> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>4.0.1</version> <scope>provided</scope> </dependency> <!-- JSP support --> <dependency> <groupId>javax.servlet.jsp</groupId> <artifactId>javax.servlet.jsp-api</artifactId> <version>2.3.3</version> <scope>provided</scope> </dependency> <!-- JSTL --> <dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> <version>1.2</version> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <version>3.3.1</version> <configuration> <failOnMissingWebXml>false</failOnMissingWebXml> </configuration> </plugin> </plugins> </build> </project> ``` #### 1.2 创建Spring配置类 在`src/main/java`目录下创建一个配置类,例如`AppConfig.java`: ```java package com.example.config; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.ViewResolver; import org.springframework.web.servlet.config.annotation.EnableWebMvc; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; import org.springframework.web.servlet.view.InternalResourceViewResolver; @Configuration @EnableWebMvc @ComponentScan(basePackages = "com.example") public class AppConfig implements WebMvcConfigurer { @Bean public ViewResolver viewResolver() { InternalResourceViewResolver resolver = new InternalResourceViewResolver(); resolver.setPrefix("/WEB-INF/views/"); resolver.setSuffix(".jsp"); return resolver; } } ``` #### 1.3 创建Spring初始化类 在`src/main/java`目录下创建一个初始化类,例如`WebAppInitializer.java`: ```java package com.example.config; import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer; public class WebAppInitializer extends AbstractAnnotationConfigDispatcherServletInitializer { @Override protected Class<?>[] getRootConfigClasses() { return null; // No root config classes needed for this example } @Override protected Class<?>[] getServletConfigClasses() { return new Class[]{AppConfig.class}; } @Override protected String[] getServletMappings() { return new String[]{"/"}; } } ``` #### 1.4 创建控制器类 在`src/main/java`目录下创建一个控制器类,例如`HelloController.java`: ```java package com.example.controller; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; @Controller public class HelloController { @RequestMapping("/hello") public String sayHello(Model model) { model.addAttribute("message", "Hello, Spring MVC!"); return "hello"; // This will resolve to /WEB-INF/views/hello.jsp } } ``` #### 1.5 创建视图文件 在`src/main/webapp/WEB-INF/views`目录下创建一个JSP文件,例如`hello.jsp`: ```jsp <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>Hello Page</title> </head> <body> <h1>${message}</h1> </body> </html> ``` ### 2. 使用XML配置形式 #### 2.1 创建Maven项目并添加依赖项(同上) #### 2.2 创建Spring配置文件 在`src/main/resources`目录下创建一个Spring配置文件,例如`dispatcher-servlet.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 http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd"> <!-- Enable component scanning --> <context:component-scan base-package="com.example"/> <!-- Enable Spring MVC --> <mvc:annotation-driven/> <!-- Configure view resolver --> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/views/"/> <property name="suffix" value=".jsp"/> </bean> </beans> ``` #### 2.3 创建Spring初始化类(同上) 在`src/main/java`目录下创建一个初始化类,例如`WebAppInitializer.java`: ```java package com.example.config; import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer; public class WebAppInitializer extends AbstractAnnotationConfigDispatcherServletInitializer { @Override protected Class<?>[] getRootConfigClasses() { return null; // No root config classes needed for this example } @Override protected Class<?>[] getServletConfigClasses() { return null; // No servlet config classes needed for this example } @Override protected String[] getServletMappings() { return new String[]{"/"}; } } ``` #### 2.4 修改`web.xml`文件以加载Spring配置文件(如果需要) 在`src/main/webapp/WEB-INF`目录下创建或修改`web.xml`文件: ```xml <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2 [2024-11-21 11:05:09 | AI写代码神器 | 2048点数解答]