SpringMVC(二)@RequestMapping

学习@RequestMapping注解,参考Spring API

[email protected]可以修饰在类类型和方法上
      ①.修饰在类定义上:   提供初步的URL映射,相对于web应用根目录。
      ②.修饰在方定义法上:  提供更细致的URL映射,若类定义上有注解,则相对于类定义上的URL映射。否则相对于web应用根目录映射

代码1:

只在方法上加@RequestMapping:

   1: @Controller
   2: public class TestRequestMapping {

   3:     @RequestMapping("/testMethod")

   4:     public String testMethod() {

   5:         System.out.println("testMethod");

   6:         return "success";

   7:     }

   8: }

URL:

   1: <a href="testMethod">testMethod</a>

代码2:

在类和方法上加@RequestMapping:

   1: @RequestMapping("/testClass")
   2: @Controller

   3: public class TestRequestMapping {

   4:     @RequestMapping("/testMethod")

   5:     public String testClassAndMethod() {

   6:         System.out.println("testClassAndMethod");

   7:         return "success";

   8:     }

   9: }

URL:

   1: <a href="testClass/testMethod">testClassAndMethod</a>

代码3:

只在类上加@RequestMapping:

   1: @RequestMapping("/testClass")
   2: @Controller

   3: public class TestRequestMapping {

   4:  

   5:     public String testClassAndMethod() {

   6:         System.out.println("testClass");

   7:         return "success";

   8:     }

   9: }

URL:

   1: <a href="testClass">testClass</a>

运行时,发出Tomcat警告: No mapping found for HTTP request with URI [/mvc02/testClass] in DispatcherServlet with name ‘dispatcherServlet‘。

也就说在类上加注解后,必须在方法上也加注解。查看api,发现开头第一句 Annotation for mapping web requests onto specific handler classes and/or handler methods

好吧没仔细看api,classes and/or handler methods。(⊙﹏⊙)b

[email protected]有7个参数,value,method,headers,params之间是与的关系:

String[]        value URL路径:"/myPath/myMethod"
RequestMethod[]  method 请求方式:GET, POST, HEAD, OPTIONS, PUT, PATCH, DELETE, TRACE
String[]   headers 请求头,用法与params类似,支持简单表达式
String[] params 请求参数,支持简单表达式
      params={"name"}:参数中必须包含名为name的参数
      params={"!name"}:参数中不能包含名为name的参数
      params={"name!=xx"}:参数中若包含了名为name的参数,
                    则name!=xx。参数中也可以不包含名为name的参数
      params={"name=xx"}:参数中必须包含名为name的参数,
                    且name=xx。
String[] produces 指定哪些媒体类型可以不需要
String[] consumes 指定哪些媒体类型可以额外 添加
String name 映射名称

method——代码:

   1: @RequestMapping("/testClass")
   2: @Controller

   3: public class TestRequestMapping {

   4:     @RequestMapping(value = "/testMethod_GET", method = RequestMethod.GET)

   5:     public String testMethod_GET() {

   6:         System.out.println("method running....");

   7:         return "success";

   8:     }

   9:  

  10:     @RequestMapping(value = "/testMethod_POST", method = RequestMethod.POST)

  11:     public String testMethod_POST() {

  12:         System.out.println("method running....");

  13:         return "success";

  14:     }

  15:  

  16: }

URL:

   1: <form action="testClass/testMethod_POST" method="post">
   2:     <input type="submit" value="testMethod_POST"/>

   3: </form>

   4: <br/><br/>

   5:  

   6: <a href="testClass/testMethod_GET">testMethod_GET</a>
时间: 2024-10-12 22:07:29

SpringMVC(二)@RequestMapping的相关文章

SpringMVC 学习笔记(二) @RequestMapping、@PathVariable等注解

1.1. @RequestMapping映射请求 SpringMVC 使用 @RequestMapping 注解为控制器指定可以处理那些URL 请求 @requestMapping  可以定义在 类 和 方法 上 package com.ibigsea.springmvc.helloworld; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.Requ

SpringMVC注解@RequestMapping之produces属性导致的406错误

废话不多说,各位,直接看图说话,敢吗?这个问题网上解决的办法写的狠是粗糙,甚至说这次我干掉它完全是靠巧合,但是也不否认网上针对406错误给出的解决方式,可能是多种情况下出现的406吧?我这次的流程就是集成了MyBatis的分页插件,简单实现了一个分页功能,最后将数据返回给浏览器,就因为我的随手一粘贴,才引发了这场406,别忘了各位看图说话. 我首先说说我的惨痛经历吧,一直对spring框架的AOP原理狠是模糊,就在上周五自己想好好研究一下,但是很多美好的事情都不是那么一路绿灯,磕磕绊绊总算是差不

SpringMVC在@RequestMapping配置两个相同路径

这篇博客来自这个问题: 在SpringMVC中@RequestMapping可以配置两个相同的url路径吗. 首先,这个问题会点SpringMVC的人可能都知道答案,但是上次面试中我就回答了可以...可以..Spicy Chicken!!! 参考文章: http://lgbolgger.iteye.com/blog/2105108 这个问题要从 RequestMappingHandlerMapping 和 RequestMappingHandlerAdapter 讲起了. 首先,在配置文件中声明

SpringMVC(三) RequestMapping修饰类

SpringMVC使用@RequestMapping 注解为控制器指定可以处理哪些URL请求. 可以用于类定义以及方法定义: 类定义:提供初步的请求映射信息.相对于WEB应用的根目录. 方法处:提供进一步的细分映射信息.相对于类定义处的URL.若类定义处没有定义,则是相对于根目录. 如:针对类设置了@RequestMapping("pathclass")注解,针对方法设置了@RequestMapping("method"),则最终调用到方法的url为pathclas

springmvc注解@RequestMapping

springmvc注解@RequestMapping 1.处理器.controller的url 2)跟路径+子路径. 3)限定提交方法 @RequestMapping的属性method: 1.RequestMehtod.Get 2.RequestMethod.POST 常用的两个. 原文地址:https://www.cnblogs.com/meiLinYa/p/8761328.html

SpringMVC(十二) RequestMapping使用POJO作为参数

将一个普通的JAVA类对象作为一个参数传入. POJO类Address: package com.tiekui.springmvc.pojo; public class Address { private String province; private String city; public String getProvince() { return province; } public void setProvince(String province) { this.province = p

SpringMVC中 -- @RequestMapping的作用及用法

一.@RequestMapping 简介 在Spring MVC 中使用 @RequestMapping 来映射请求,也就是通过它来指定控制器可以处理哪些URL请求,相当于Servlet中在web.xml中配置 <servlet> <servlet-name>servletName</servlet-name> <servlet-class>ServletClass</servlet-class> </servlet> <ser

【SpringMVC】---RequestMapping、Ant 路径、PathVariable 注解、HiddenHttpMethodFilter 过滤器、用 POJO 作为参数

一.web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/

SpringMVC(二)---JSON

一,JSON 介绍 JSON (JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式.易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率 二,JSON 语法 1,JSON 语法规则 在 JS 语言中,一切都是对象.因此,任何支持的类型都可以通过 JSON 来表示,例如字符串.数字.对象.数组等.但是对象和数组是比较特殊且常用的两种类型 对象表示为键值对 数据由逗号分隔 花括号保存对象 方括号保存数组 2,JSON 键/值对 JSO

SpringMVC(十一) RequestMapping获取Cookie值

可以在控制器方法中使用类似@CookieValue("JSESSIONID") String sessionID的方式,来获取请求中的Cookie的值. 样例控制器代码 package com.tiekui.springmvc.handlers; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.CookieValue; import org.