1.概述
这是一个简单的Spring MVC,展示了如何用基于Java的配置和XML配置来设置Spring MVC项目。
2.什么是Spring Mvc?
它是Spring框架的一个模块,用于处理模型-视图-控制器或MVC模式。
3.Spring Mvc基于Java配置
通过Java配置类来启用Spring Mvc,因此添加@EnableWebMvc
@EnableWebMvc
@Configuration
public class WebConfig {
//.........
}
注册控制器和映射、类型转换器、验证支持、消息转换器和异常处理需实现WebMvcConfigurer接口来配置
@EnableWebMvc
@Configuration
public class WebConfig implements WebMvcConfigurer {
@Override
public void addViewControllers(ViewControllerRegistry registry) {
registry.addViewController("/").setViewName("index");
}
@Bean
public ViewResolver viewResolver() {
InternalResourceViewResolver bean = new InternalResourceViewResolver();
bean.setViewClass(JstlView.class);
bean.setPrefix("/WEB-INF/views/");
bean.setSuffix(".jsp");
return bean;
}
}
其中卫门注册了一个ViewResolver bean,而它会从目录/WEB-INF/views/下来返回.jsp视图
定义和扫控制器类,添加注解@ComponentScan
@EnableWebMvc
@Configuration
@ComponentScan("com.cqgcxy.controller")
public class WebConfig implements WebMvcConfigurer {
// ......
}
4.Spring Mvc基于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-4.0.xsd http://www.springframework.org/schema/mvc https://www.springframework.org/schema/mvc/spring-mvc.xsd">
<context:component-scan base-package="com.cqgcxy.controller"/>
<mvc:annotation-driven/>
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/views/"></property>
<property name="suffix" value=".jsp"></property>
</bean>
</beans>
这是使用XML来配置springmvc.xml,另外在创建的maven项目中需要引入web项目来添加web.xml去引导程序。
5.控制器和视图
控制器相关示例
@Controller
public class HelloController {
@RequestMapping("/hello")
public String hello() {
System.out.println("hello···");
return "hello";
}
}
视图相关示例
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
Hello SpringMVC!
</body>
</html>
6.Spring Mvc相关依赖
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.3.8</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.1</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.9.0</version>
</dependency>
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.2.2</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.4</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.20</version>
</dependency>
</dependencies>