【学习笔记】注解开发SpringMVC

注解开发SpringMVC

步骤:

  1. 注册DispatcherServlet,关联spring配置文件

    <!--注册DispatherServlet-->
        <servlet>
            <servlet-name>springmvc</servlet-name>
            <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <!--关联spring配置文件-->
            <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>
  2. 添加spring配置文件

    在之前我们需要在spring配置文件中注册处理器映射器(xxxHandlerMapping),处理器适配器(xxxHandlerAdapter),现在通过annotation-dirven帮助我们自动完成上面两个的注入

    视图解析器还是需要我们手动添加

    <!--自动扫描该包下的注解,使之生效-->
        <contest:component-scan base-package="com.wang.controller"/>
    ​
    <!--让springmvc不处理静态资源-->
        <mvc:default-servlet-handler/>
    ​
    <!--自动注入处理器适配器和处理器映射器-->
        <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>

    除了annotation-dirven之外,我们还需要contest:component-scan来扫描某个包下的注释,使之生效,还有mvc:default-servlet-handler来让springmvc不处理静态资源

  3. 写一个Controller,用@Controller来注解,不需要在spring配置文件中注册bean了,在这个Controller中的方法,返回值为String的,返回值就是视图的名字,会被视图解析器处理。

    封装数据可以使用对象Model来完成,调用Model的addAttribute()方法

    要访问的url,通过注解@RequestMapping来指定,如果把@RequestMapping放在类名上是表示多级路径。url必须要逐级访问 localhost:8080/hello/h1 或 localhost:8080/h1

    package com.wang.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 helloSpringMVC(Model model){
    ​
            model.addAttribute("msg","注解开发springMVC");
    ​
            return "hello";
        }
    }

 

使用springMVC开发必须配置的三大件:

处理器映射器、处理器适配器、视图解析器

前两个通过开启注解驱动就可以省去

 

关于视图解析器

用@RequestMapping注解修饰方法后,可以不配置视图解析器,直接return即可,但是需要将资源的全路径都写出来,如下:

@RequestMapping("/hello")
public String helloSpringMVC(Model model){
​
    model.addAttribute("msg","注解开发springMVC");
​
    return "/WEB-INF/jsp/hello.jsp";
}

这种方式是通过转发的方式,进行跳转,也可以显示地定义,需要将路径前面加上forword:

return "faword:/WEB-INF/jsp/hello.jsp";

如果想要使用重定向,只需要把forword: 改成 redirect:

上面是没有配置视图解析器,如果配置了视图解析器,可以省略全路径

//默认是转发
return "hello";
//重定向
return "redirect:/hello.jsp";
posted @ 2023-02-26 15:54  GrowthRoad  阅读(14)  评论(0编辑  收藏  举报