• SpringMVC:Controller的编写


    SpringMVC:Controller的编写

    Controller,通常通过接口定义和注解两种方式!

    使用基于注解的控制器的优点如下:

    • 一个 Controller 类可以处理多个动作,而实现了一个 Controller 接口的控制器只能处理一个动作。

    • 基于 Controller 注解的控制器的请求映射不需要写在配置文件中。使用 @RequestMapping 注解类型,可以对一个方法进行请求处理。

    实现Controller接口:

    该接口在 org.springframework.web.servlet.mvc.Controller,该接口只有一个方法

    package com.xu.controller;
    import org.springframework.web.servlet.ModelAndView;
    import org.springframework.web.servlet.mvc.Controller;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    public class AiController implements Controller {
        @Override
        public ModelAndView handleRequest(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception {
            ModelAndView mv = new ModelAndView();
            mv.addObject("msg","乘风御剑");
            mv.setViewName("hello");
            return mv;
        }
    }
    

    编写完成后在Spring中注册:

    name对应请求路径,class对应处理请求的类

    <bean name="/hello" class="com.xu.controller.AiController"/>
    

    使用注解:

    1、我们需要在Spring的配置文件中开启包的扫描:

    <context:component-scan base-package="..." />
    

    2、我们只需要在类上加@Controller注解,即可实Controller的功能:

    @Controller
    public class HelloController {
        @RequestMapping("/h1")
        public String hellomvc(){
            return null;
        }
    }
    

    标记@RequestMapping 注解的方法将成为一个 请求处理方法,在接收到URL请求时被调用。

    @RequestMapping(value="/hello", method = {RequestMethod.GET, RequestMethod.POST})
    public String printHello() {
        return null;
    }
    

    value : 表示请求的路径;
    method : 表示只接受花括号内的请求方法;

    @RequestMapping作用在类上:

    通过注解实现一个类处理多个动作:

    @Controller
    @RequestMapping("/HelloController")
    public class HelloController {
    
        @RequestMapping("/h1")
        public String hellomvc(){
            return null;
        }
        
         @RequestMapping("/h2")
        public String hellomvc(){
            return null;
        }
    }
    

    在请求的时候每个请求之前都要加上 /HelloController,例如:

    /HelloController/h1
    /HelloController/h2
    
  • 相关阅读:
    内存映射和独立存贮器
    Elastic Stack简介和Elasticsearch--先搞清楚概念第二篇
    终于有人把Elasticsearch原理讲透了!学习的第一篇总览全局
    Java对象的序列化和反序列化
    java类里的成员变量是自身的对象问题
    Maven多模块的2种依赖管理策略
    双重检查锁单例模式为什么要用volatile关键字?
    Maven pom中的 scope 详解
    IntelliJ IDEA 内置数据库管理工具实战
    docker安装mysql5.7
  • 原文地址:https://www.cnblogs.com/whitespaces/p/12451521.html
Copyright © 2020-2023  润新知