Spring MVC,基于注解的Spring MVC应用
本文引用自:《Java EE企业级应用开发教程》,请先阅读本篇前文:Spring MVC入门
一、搭建项目环境
需要引用Spring AOP所需的Jar包。如果是Maven项目,假定Spring版本为5.2.17,修改pom.xml如下:
<!-- https://mvnrepository.com/artifact/org.springframework/spring-aop --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-aop</artifactId> <version>5.2.17.RELEASE</version> </dependency>
二、修改配置文件springmvc-config.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" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.3.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd"> <!-- 指定需要扫描的包 --> <context:component-scan base-package="com.itheima.controller" /> <!-- 定义视图解析器 --> <bean id="viewResolver" class= "org.springframework.web.servlet.view.InternalResourceViewResolver"> <!-- 设置前缀 --> <property name="prefix" value="/WEB-INF/jsp/" /> <!-- 设置后缀 --> <property name="suffix" value=".jsp" /> </bean> </beans>
在文件中,首先通过组件扫描指定需要扫描的Package,然后定义视图解析器,并在视图解析器中设置视图文件的路径前缀和后缀。
三、修改Controller
package com.itheima.controller; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; /** * 控制器类 */ @Controller @RequestMapping(value="/hello") public class FirstController{ @RequestMapping(value="/firstController") public String handleRequest(HttpServletRequest request, HttpServletResponse response, Model model) throws Exception { // 向模型对象中添加数据 model.addAttribute("msg", "这是我的第一个Spring MVC程序"); // 返回视图页面 return "first"; } }
使用@Controller注解来标注控制器类,并使用@RequestMapping注解标注在类名和方法名上来映射请求方法。
标注在类上的@RequestMapping注解的value为“/hello”,因此类中所有请求方法的路径都需要加上“/hello”。同理往推方法的@RequestMapping注解之value值即可。
handleRequest方法返回类型为String,通常表示视图名,所以需要通过参数Model对象的addAttribute方法来添加数据信息。因为在配置文件中的视图解析器中,已经定义视图文件的前缀和后缀,所以handleRequest方法只需要返回“first”即可,系统会自动访问"WEB-INF/jsp"路径下名称为firstr的jsp文件。
四、启动项目,测试应用