Spring MVC请求到处理方法注解配置的几种方式
- @RequestMapping
这个是最常用的注解,可以配置在类上,也可以配置在方法上,两个一起作用组成方法能够响应的请求路径,举例如下
package org.zln.myWeb.controller; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import org.zln.myWeb.domain.T00_User;
import org.zln.myWeb.service.T00_UserService; import java.util.HashMap;
import java.util.Map; /**
* Created by sherry on 16/8/6.
*/
@Controller
@RequestMapping("/myWeb")
public class T00_UserController { @Autowired
private T00_UserService t00_userService; @RequestMapping("/name.json")
public @ResponseBody Map<String,String> showName(@RequestParam("id") Integer id){
T00_User t00_user = t00_userService.getT00_UserById(id);
Map<String,String> map = new HashMap<>();
map.put("name",t00_user.getName());
return map;
}
}
@RequestMapping demo01
showName方法能够处理的就是请求路径为 /myWeb/name.json 的请求 可以配置多个路径
@RequestMapping(value={"/myWeb","/"})
URI模板映射
@RequestMapping("/myWeb/user/{userId}")
其中{xxx}是占位符,在方法参数中,通过@PathVariable能够提取URI中的userId值
当然,占位符可以使用多个
Ant风格的URL路径
@RequestMapping("/myWeb/**")
所有 /myWeb/开头的地址都能够映射到,但是,当产生冲突的时候,参考最长匹配优先原则
@RequestMapping("/myWeb/name?")
一个问号 ?,匹配任意一个字符
一个星号 *,匹配任意多个字符
Ant风格和URI模板是可以混用的
正则表达式
@RequestMapping("/myWeb/{正则表达式名:表达式}")
方法参数中,使用@PathVariable("正则表达式名") 获取到请求地址值
- 请求方法限定
@RequestMapping(value = "/name.json",method = {RequestMethod.GET})
也可以配置允许多种提交方式
@RequestMapping(value = "/name.json",method = {RequestMethod.GET,RequestMethod.POST})
一般浏览器只支持GET、POST两种请求方法,Spring MVC默认开启了对GET、POST、DELETE、PUT、HEAD的支持
对于OPTIONS、TRACE请求方法的支持,需要在web.xml中配置
- 请求参数限定
请求参数中必须有某种参数,也可以设置参数的值必须为某个指定值,才映射到方法
@RequestMapping(value = "/name.json",method = {RequestMethod.GET,RequestMethod.POST,},params = "id")
@RequestMapping(value = "/name.json",method = {RequestMethod.GET,RequestMethod.POST,},params = "!id")
!id表示没有id请求参数
@RequestMapping(value = "/name.json",method = {RequestMethod.GET,RequestMethod.POST,},params = "id=1")
指定id值
@RequestMapping(value = "/name.json",method = {RequestMethod.GET,RequestMethod.POST,},params = "submit!=create")
指定值不等于某个值
@RequestMapping(value = "/name.json",method = {RequestMethod.GET,RequestMethod.POST,},params = {"test1","test2=1"})
也可以配置多个参数值,多个参数之间的配置是且的关系
- 请求头信息限定
@RequestMapping(value = "/name.json",method = {RequestMethod.GET,RequestMethod.POST,},params = "id",headers = "Accept")
headers用来配置请求头信息,如上表示请求头信息必须有Accept参数
headers="!Accept",请求头不允许包含Accept参数
同时,和params一样,也可以配置多个请求头参数
通过以上的方式,基本是已经可以完全满足日常使用了
Spring MVC请求到处理方法注解配置的几种方式的更多相关文章
- 【Spring】SpringMVC非注解配置的两种方式
目录结构: contents structure [+] SpringMVC是什么 Spring MVC的设计原理 SpringMVC配置的第一种方式 1,复制Jar包 2,Web.xml文件 3,M ...
- spring mvc从前台往后台传递参数的三种方式
jsp页面: 第一种:使用控制器方法形参的方式(常用) 第二种:使用模型传参的方式(如果前台往后台传递的参数非常多,如果还使用形参的方式传递,非常复杂.我们可以使用模型传参的方式,把多 个请求的参数 ...
- spring mvc从后台往前台传参数的三种方式
第一种:使用Model对象(常用) 第一步:使用model对象往前台传递数据 第二步:在jsp中接收从后台传递过来的参数 第二种:使用HttpServletRequest对象 第一步:使用HttpSe ...
- spring Mvc 执行原理 及 xml注解配置说明 (六)
Spring MVC 执行原理 在 Spring Mvc 访问过程里,每个请求都首先经过 许多的过滤器,经 DispatcherServlet 处理; 一个Spring MVC工程里,可以配置多个的 ...
- Spring MVC 4常用的那些注解
Spring从2.5版本开始在编程中引入注解,用户可以使用@RequestMapping, @RequestParam, @ModelAttribute等等这样类似的注解.到目前为止,Spring的版 ...
- [转]Spring MVC 4常用的那些注解
Spring从2.5版本开始在编程中引入注解,用户可以使用@RequestMapping, @RequestParam, @ModelAttribute等等这样类似的注解.到目前为止,Spring的版 ...
- 0054 Spring MVC的@Controller和@RequestMapping注解
@Controller注解 该注解用来指示一个类是一个控制器,在Spring的配置xml文件中开启注解扫描 <context:conponent-scan base-package=" ...
- Spring MVC内容协商实现原理及自定义配置【享学Spring MVC】
每篇一句 在绝对力量面前,一切技巧都是浮云 前言 上文 介绍了Http内容协商的一些概念,以及Spring MVC内置的4种协商方式使用介绍.本文主要针对Spring MVC内容协商方式:从步骤.原理 ...
- 详解Spring MVC 4常用的那些注解
Spring从2.5版本开始在编程中引入注解,用户可以使用@RequestMapping, @RequestParam, @ModelAttribute等等这样类似的注解.到目前为止,Spring的版 ...
随机推荐
- IOS UIApplication使用
- (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typica ...
- vuejs数据和事件
<body> <div id='root'>{{number}}</div> <script> new Vue({ el:'#root', data:{ ...
- mongostat查看mongodb运行状态使用命令介绍
mongostat是mongodb自带的一个用来查看mongodb运行状态的工具 使用说明 mongostat -h 字段说明 启用后的状况是这样的 insert query update del ...
- FW 数据库迁移之从oracle 到 MySQL
方式一: 手动方式导入导出 手动的方式导入, 就是操作步骤会比较繁琐一些. 对Table 的结构和数据: 1. 使用 SQL Developer 把 oracle 的 table 的schema 和 ...
- 在RichTextBox控件中显示RTF格式文件
实现效果: 知识运用: RichTextBox控件的LoadFile方法 //将文件内容加载到RichTextBox控件中 public void LoadFile(string path,Ri ...
- python_40_通过脚本转换参数实现替换
import sys f=open('yesterday','r',encoding='utf-8') f_new=open('yesterday_update','w',encoding='utf- ...
- WARNING: The TCP backlog setting of 511.解决
redis启动警告问题:WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/so ...
- caller、callee的用法及区别
1 :caller 返回一个调用当前函数的引用 如果是由顶层调用的话 则返回null (举个栗子哈 caller给你打电话的人 谁给你打电话了 谁调用了你 很显然是下面a函数的执行 只有在打电话的时 ...
- Spring Framework(框架)整体架构 变迁
Spring Framework(框架)整体架构 2018年04月24日 11:16:41 阅读数:1444 标签: Spring框架架构 更多 个人分类: Spring框架 版权声明:本文为博主 ...
- react与微信小程序
由组员完成 原文链接 都说react和微信小程序很像,但是像在什么部分呢,待我稍作对比. 生命周期 1.React React的生命周期在16版本以前与之后发生了重大变化,原因在于引入的React F ...