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
    
  • 相关阅读:
    导入贴图操作:处理贴图MaxSize和Format
    修改贴图工具
    CharacterMotor_刚体角色驱动
    sine曲线向前运动
    Shader基础(固定管线着色器)
    Shader基础(渲染管线)
    Unity3D中的高级摄像机跟随
    蛋疼的 qii 神马警告才是需要注意的警告?(由于警告引起的截然不同的运行结果)
    模拟摄像头,AV视频信号线解码,PAL制 NTSC,输入解码显示,终于搞定,记录下!
    VIP 视频开发板 上位机 测试软件 下载地址,玩转各自分辨率(V201抢先版)
  • 原文地址:https://www.cnblogs.com/whitespaces/p/12451521.html
Copyright © 2011-2022 走看看