SpingMVC常用注解之@Controller注解的使用

一、简介

@Controller用于标记一个类,被标记的类就是一个控制类。Spring使用扫描机制查找所有基于注解的控制器类。

分发处理器会扫描该类下的方法,并检测该方法是否使用@RequestMapping注解,使用了才是真正的处理请求的处理器。

为保证Spring能找到控制器,SpringMVC的配置文件应如下配置

<context:component-scan base-package="controller类所在的包名" />

相应的配置头文件应引入  xmlns:context="http://www.springframework.org/schema/context"

 

二、使用

例:HelloWorld的实现

1、控制层代码

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class HelloWorldController {
    
    @RequestMapping("/helloWorld")
    public String helloWorld(Model model){
        model.addAttribute("message","SpringMVC你好啊");
    return "helloWorld";
    
    }
}

@Controller 基于注解的控制器,@RequestMapping注解用来映射一个请求,value="/helloWorld" 表示 前台的这个请求由对应的helloWorld方法处理

helloWorld()方法接收一个org.springframework.ui.Model类型的参数 model ,model调用addAtrribute方法,添加一个字符串对象message,

message对象可以在前台通过request对象获取。

最后,返回helloWorld,这个返回的helloWorld 是前台的名称,因为SpringMVC配置文件中有视图解析器,相当于返回到helloWorld.jsp

2、SpringMVC配置文件

<?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:p="http://www.springframework.org/schema/p"
    xmlns:context="http://www.springframework.org/schema/context"
    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">

    <!-- 使用注解的包,包括子集 -->
    <context:component-scan base-package="guo"/>

    <!-- 视图解析器 -->
    <bean id="viewResolver"
        class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/jsp/" />
        <property name="suffix" value=".jsp"></property>
    </bean>

</beans>

由于使用了注解,所以不需要在配置文件中使用XML描述Bean。

 <context:component-scan base-package=" guo"/> 指定Spring扫描guo包下所有java文件。

视图解析器中  prefix属性表示视图前缀,suffix,表示视图后缀。

控制层helloWorld方法最后返回的是helloWorld,经过视图解析器解析后(加上前缀后缀后)

前台视图的完整路径为: /WEB-INF/jsp/helloWorld.jsp

(没有配置处理映射器和处理适配器,Spring会使用默认的。除此之外 web.xml文件需要配置SpringMVC的DispatcherServlet)

3、运行结果

请求http://localhost:8080/SpringMVC01/helloWorld.do (SpringMVC01是我项目名,helloWorld是@RequestMapping的value属性值)

 

 

参考书籍:《Spring+MyBatis企业应用实战》 疯狂软件编著,电子工业出版社。

posted @ 2021-01-09 11:40  锅锅7533  阅读(1148)  评论(0编辑  收藏  举报