zoukankan      html  css  js  c++  java
  • SpringMVC之使用 @RequestMapping 映射请求

    @RequestMapping注解

    SpringMVC使用该注解让控制器知道可以处理哪些请求路径的,除了可以修饰方法,还可以修饰在类上

    – 类义处:提供初求映射信息。相WEB 用的根目
    方法:提供分映射信息。相义处URL。若
    义处@RequestMapping方法处标记URL
    WEB 用的根目录 。

    DispatcherServlet作为SpringMVC的前置控制器,拦截客户端请求后,通过该注解的映射信息确定请求的处理方法。

     @RequestMapping接口定义:
    @Target({ElementType.METHOD, ElementType.TYPE})
    @Retention(RetentionPolicy.RUNTIME)
    @Documented
    @Mapping
    public @interface RequestMapping {

    下面是一个测试类

    package com.led.test;
    
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.RequestMapping;
    
    /**
     * @author Alan
     * @date 2018/5/25 22:03
     */
    @Controller
    @RequestMapping("/test")
    public class SpringMVCTest {
        private static final String SUCCESS = "success";
    
        @RequestMapping("/testRequestMapping")
        public String testRequestMapping(){
            System.out.println("testRequestMapping");
            return SUCCESS;
        }
    }

    index.jsp加上发送对应请求的链接:

    <a href="test/testRequestMapping">Test RequestMapping</a>

    运行项目,点击该链接,可以看到请求路径是类上的请求路径和方法的请求路径拼接起来的,同时控制台也有对应输出。

    @RequestMapping里面还可以使用method属性定义请求方式:

     /**
         * 使用method定义请求方式
         * @return
         */
        @RequestMapping(value = "/testMethod",method = RequestMethod.POST)
        public String testMethod(){
            System.out.println("test method");
            return SUCCESS;
        }

    index.jsp新增发送post方式的按钮,点击后成功跳转到success.jsp

    <form action="test/testMethod" method="post">
          <input type="submit" value="submit">
      </form>

    如果使用超链接方式(其实发送的是GET请求),将报如下错误:

     @RequestMapping映射求参数(params)、求方法或头 (headers)示例;

    //使用params和headers可以更精确地映射请求
    @RequestMapping(value = "/testParamsAndHeaders", headers = {"Accept-Language=zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7"}, params = {"username","age!=10"}) public String testParamsAndHeaders(){ System.out.println("testParamsAndHeaders"); return SUCCESS; }

    index.jsp加上测试链接:

    <a href="test/testParamsAndHeaders?username=zhangsan&age=11">Test ParamsAndHeaders</a>

    由于params和headers都符合设置的值,所以成功返回success.jsp,使用说明如下

    params 和 headers支持简单的表达式:
    – param1: 表示请求必须包含名为 param1 的请求参数
    – !param1: 表示请求不能包含名为 param1 的请求参数
    – param1 != value1: 表示请求包含名为 param1 的请求参数,但其值
    不能为 value1
    – {“param1=value1”, “param2”}: 请求必须包含名为 param1 和param2
    的两个请求参数,且 param1 参数的值必须为 value1

    支持Ant风格url

    @RequestMapping("/testAntPath/*/good")
        public String testAntPath(){
            System.out.println("testAntPath");
            return SUCCESS;
        }

    index.jsp:

    <a href="test/testAntPath/as/good">Test AntPath</a>

    箭头的地方改成任意值都能跳转到success.jsp,这就是通配符的作用:

    Ant 风格资源地址支持 3 种匹配符:
    – ?:匹配文件名中的一个字符
    – *:匹配文件名中的任意字符
    – **:** 匹配多层路径
  • 相关阅读:
    Css-深入学习之弧形切角矩形
    Css-深入学习之切角
    Css-深入学习之三角形气泡窗
    Javascript-对HTML5 <progress> 标签操作
    Centos6.5 Squid3.1.10代理服务器(用户认证,加密,高匿)及使用指南
    python 管理ssh客户端
    win7 centos6.5 ubuntu三系统硬盘安装
    centos vncserver
    vi 详解
    nginx 日志格式
  • 原文地址:https://www.cnblogs.com/stm32stm32/p/9090899.html
Copyright © 2011-2022 走看看