zoukankan      html  css  js  c++  java
  • 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
    
  • 相关阅读:
    Android Architecture Components
    adb命令
    Dagger2 scope
    Dagger2学习资源
    Dependency Injection学习笔记
    什么是ADB
    使用AndroidStudio dump heap,再用 Eclipse MAT插件分析内存泄露
    Dagger学习笔记
    linux & shell & nginx & Docker Kubernetes
    Go 目录
  • 原文地址:https://www.cnblogs.com/whitespaces/p/12451521.html
Copyright © 2011-2022 走看看