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
    
  • 相关阅读:
    11.14 mii-tool:管理网络接口的状态
    11.15 dmidecode:查询系统硬件信息
    11.11 ntsysv:管理开机服务
    HDU 2476 String painter 刷字符串(区间DP)
    HDU 1085 Holding Bin-Laden Captive! 活捉本拉登(普通型母函数)
    母函数的应用
    HDU 1028 Ignatius and the Princess III伊格和公主III(AC代码)母函数
    HDU 1059 Dividing 分配(多重背包,母函数)
    HDU 2955 Robberies抢劫案(01背包,变形)
    HDU 1011 Starship Troopers星河战队(树形dp)
  • 原文地址:https://www.cnblogs.com/whitespaces/p/12451521.html
Copyright © 2011-2022 走看看