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文件。

四、启动项目,测试应用

 

posted @ 2021-09-30 09:42  那些年的事儿  阅读(80)  评论(0编辑  收藏  举报