SpringMVC总结一:快速入门的基础上简单介绍一下请求映射的方式:

1,标准映射规则

  1、 @RequestMapping可以设置在类上,也可以设置在方法上

  2、 请求的映射规则是:类上的RequestMapping + 方法上的RequestMapping

  3、 如果没有写 / ,SpringMVC会自动补全

  4、 类上的RequestMapping可以省略,这时直接用方法的RequestMapping访问

  5、 路径不可重复

//加上Controller注解
@Controller
@RequestMapping("/test")//添加映射路径,可用来设置url
public class HelloController {
//映射注解
@RequestMapping("/helloSpringMVC")
public ModelAndView helloSpringMVC() {
ModelAndView mv = new ModelAndView();
mv.setViewName("hello");//设置视图名字
mv.addObject("msg", "hello springmvc 注解版 ===" + new Date().toLocaleString());
return mv;
}
}

2,Ant风格映射

  1、? 匹配一个字符,如/hello? 可以匹配/hello1  /hello2,但是不能匹配/hello或者/hello12

  2、* 匹配0个或多个字符, 如/hello/*  可以匹配/hello/demo或者/hello/demo2

  3、**匹配0个或多个路径,如/hello/**  可以匹配/hello路径下的所有子路径,比如/hello/dd或者/hello/dd/cc/aa

  4、最长匹配优先:

    现在有4中映射路径:1,/hello/demo  2,/hello/**/abc  3,/hello/**  4,/**

    如果请求为/hello/demo 那么优先匹配1,但是请求/hello/ddd则会匹配3,请求/hello/222/abc则匹配2,请求/ddd匹配4

//加上Controller注解
@Controller
@RequestMapping("/test")//添加映射路径,可用来设置url
public class HelloController {
//ant风格映射
@RequestMapping("/**/testAntMapping")
public ModelAndView antMapping() {
ModelAndView mv = new ModelAndView();
mv.setViewName("hello");//设置视图名字
mv.addObject("msg", "antMapping test ===" + new Date().toLocaleString());
return mv;
}
}

3,占位符映射

  例如商品的url路径一般都是.../product/xxxxx.html,这个xxxxx可以设置成占位符

  @RequestMapping(value="/product/{productid}") :占位符为productid,访问的路径可以是/product/123456或者/product/222等

  通过@PathVariable 可以提取 URI 模板模式中的{xxx}中的xxx变量。

//加上Controller注解
@Controller
@RequestMapping("/test")//添加映射路径,可用来设置url
public class HelloController {
//占位符映射
@RequestMapping("/pathvariable/{id}")
public ModelAndView pathVariableMapping(@PathVariable("id") int id1) {
ModelAndView mv = new ModelAndView();
mv.setViewName("hello");//设置视图名字
mv.addObject("msg", "pathvariable id=" + id1);
return mv;
}
}

SpringMVC总结二:Controller的请求映射方式(RequestMapping)简单介绍的更多相关文章

  1. HTTP请求方式中8种请求方法(简单介绍)

    简单介绍 HTTP是超文本传输协议,其定义了客户端与服务器端之间文本传输的规范.HTTP默认使用80端口,这个端口指的是服务端的端口,而客户端使用的端口是动态分配的.当我们没有指定端口访问时,浏览器会 ...

  2. salesforce 零基础学习(二十九)Record Types简单介绍

    在项目中我们可能会遇见这种情况,不同的Profile拥有不同的页面,页面中的PickList标签可能显示不同的值.这个时候,使用Record Types可以很便捷的搞定需求. Record Types ...

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

    将一个普通的JAVA类对象作为一个参数传入. POJO类Address: package com.tiekui.springmvc.pojo; public class Address { priva ...

  4. SpringMVC(十七-二十) ModelAttribute 注解

    有点难理解. 修饰方法是表示在该控制器的所有目标方法执行前都执行该modelattribute注解的方法. 修饰参数是表示什么?修饰参数时@modelattributes(value="xx ...

  5. SpringMVC中的@Controller和@RequestMapping到底什么鬼?

    1.1 @Controller是什么 首先看个例子: @Controller @RequestMapping("/blog") public class BlogControlle ...

  6. SpringMVC总结三:请求Controller返回视图类型以及请求方式、参数介绍

    视图解析,请求Controller返回的视图类型: @Controller @RequestMapping("/test") public class TestController ...

  7. springMVC配置时,静态资源和jsp文件路径没错但是访问时controller的请求报404错误。

    springMVC配置时,静态资源和jsp文件路径没错但是访问时controller的请求报404错误. 1.场景 如果在web.xml中servlet-mapping的url-pattern设置的是 ...

  8. SpringMVC学习笔记一(请求流程和配置,启动项目)

    springmvc请求流程: 1.用户发送请求至前端控制器DispatcherServlet 2.DispatcherServlet收到请求调用HandlerMapping处理器映射器. 3.处理器映 ...

  9. springmvc 发送PUT 和 DELETE 请求

    一: 发送 DELETE 或者 PUT 请求: 1.在表单中加入一个隐藏的参数: _method  , 值是 DELETE (或者PUT) <form action="springmv ...

随机推荐

  1. android 删除SD卡或者手机的缓存图片和目录

    public static final String TEMP_PHOTO_FILE_NAME = "temp_photo.jpg"; private static String ...

  2. ng 服务

    服务的本质是单例对象,封装一些方法和属性的. 单例模式:在实例化变量的时候,如果该变量已经存在,直接返回该变量:如果不存在,就创建一个新的变量再返回 ng自带的服务有很多,常用:$location $ ...

  3. 部署tinyproxy透明代理服务

    线上需要一个https的透明代理,开始打算用nginx,调试了一段时间发现配置较复杂且没有成功.后来用的tinyproxy做的透明代理.安装配置过程就是下载.解压.编译.安装.配置.启动一波流: 安装 ...

  4. 在Blender上安装RenderMan插件

    2018/3/27 Download and Install Blender itself Download RenderMan Installer (Need to register an acco ...

  5. 前端之jQuery02

    文档操作 重点:创建标签,jQuery里面没有这个方法 内部(子标签) 添加到指定元素内部后面 $(A).append(B): // B作为A的最后一个儿子元素:(把B追加到A) $(A).appen ...

  6. I.MX6 View长宽大于屏的分辨率

    /******************************************************************************** * I.MX6 View长宽大于屏的 ...

  7. iOS6和iOS7代码的适配(5)——popOver

    popOver这个空间本身是iPad only的,所以iPhone上见不到,我记得微信上有个这样的弹出框,有扫一扫等几个菜单项,估计这是腾讯自己实现的,用于菜单的扩展. popOver从iOS6到iO ...

  8. jstl中的用法

    版权声明:本文为博主原创文章,未经博主允许不得转载. 在JSP的开发中,迭代是经常要使用到的操作.例如,逐行的显示查询的结果等.在早期的JSP中,通常使用Scriptlets来实现Iterator或者 ...

  9. 20165222 实验一java开发环境的熟悉

    实验内容及步骤 实验一 Java开发环境的熟悉-1 1 建立“自己学号exp1”的目录 2 在“自己学号exp1”目录下建立src,bin等目录 3 javac,java的执行在“自己学号exp1”目 ...

  10. python 递归函数和二分查找

    1.初始递归 递归属于函数中的一种特殊函数,功能迅速并且干净利落,在函数中递归的基本就是在函数中调用自己本身 def func(): print(111) func() func()#将会无限循环‘1 ...