先配置 web.xml 文件
1.注册 DispatcherServlet
- <init-param> 下 <param-value> 放自己创建的 xml(标准写法是 xx-servlet.xml)
3.映射路径写 / 即可,匹配所有请求
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"
metadata-complete="true">
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springmvc-servlet.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>
resources 目录下创建 springmvc-servlet.xml
1.自动扫描包 <context:component-scan base-package="xx"/> 放自己的包名
2.支持 MVC 注解驱动 <mvc:annotation-driven/>
3.添加视图解析器 InternalResourceViewResolver
prefix:前缀、suffix:后缀
XML
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.2.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd">
<!-- 自动扫描包,让指定包下的注解生效,由IOC容器统一管理 -->
<context:component-scan base-package="com.demo.controller"/>
<!-- 让SpringMVC不处理静态资源 -->
<mvc:default-servlet-handler/>
<!-- 支持MVC注解驱动 -->
<mvc:annotation-driven/>
<!-- 视图解析器 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"
id="InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/jsp/"/>
<property name="suffix" value=".jsp"/>
</bean>
</beans>
在包下创建一个类
- @Controller 注解,是为了让 Spring IOC 容器初始化时自动扫描到
2.写个方法,return 返回字符串,放的是自己创建的 jsp 名字
3.在方法上添加 Model
4.用 Model 来调用 addAttribute 方法,向模型中添加属性与值
- @RequestMapping("/xx") 映射请求注解,是地址栏添加的后缀名
java
package com.demo.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 test(Model model){
//封装数据,向模型中添加属性msg与值,可以在jsp页面中取出并渲染
model.addAttribute("msg","Hello,SpringMVC!");
return "hello"; //会被视图解析器处理,放的是hello.jsp
}
}
如果 @RequestMapping("/xx") 写在了类的上方,表示先走这个路径,再走方法的路径
在 WEB-INF 目录下创建 jsp 目录,再创建 hello.jsp 页面,添加一行 ${msg},确保输出
html
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<body>
${msg}
</body>
</html>
配置 Smart Tomcat 运行即可
输出成功!
使用 Spring MVC 时,必须配置三个:
处理器映射器、处理器适配器、视图解析器
前两个开启注解驱动即可 <mvc:annotation-driven/>
我们只需要手动配置视图解析器