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. [置顶] kubernetes1.7新特性:新增StorageOS卷插件和Local持久存储

    背景介绍 在Kubernetes中卷的作用在于提供给POD存储,这些存储可以挂载到POD中的容器上,进而给容器提供存储. 从图中可以看到结构体PodSpec有个属性是Volumes,通过这个Volum ...

  2. istreambuf_iterator

    #include <set> #include <stdio.h> #include <iostream> #include <istream> #in ...

  3. 机器学习(八)—Apriori算法

    摘要:本文对Apriori算法进行了简单介绍,并通过Python进行实现,进而结合UCI数据库中的肋形蘑菇数据集对算法进行验证. “啤酒与尿布”的例子相信很多人都听说过吧,故事是这样的:在一家超市中, ...

  4. hibernate的list和iterate的区别

    一.先介绍一下java中的缓存系统JCS(java cache system)  1.JCS(Java Caching System)是一个对象Cache,它可以把Java对象缓存起来,提高那些访问频 ...

  5. [Luogu4169][Violet]天使玩偶/SJY摆棋子

    luogu 题意 一个平面上有\(n\)个点,\(m\)次操作,每次新增一个点,或者是询问离某个点最近的点的距离.这里的距离是曼哈顿距离. \(n,m\le3*10^5\) sol 写一发\(CDQ\ ...

  6. 服务端获得客户端ip

    /** * 获取客户端ip地址(可以穿透代理) * * @param request * @return */ public static String getRemoteAddr(HttpServl ...

  7. bzoj 2784 时间流逝 —— 树上高斯消元

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2784 其实转移是一棵树,从根到一个点表示一种能量圈状态,当能量值大于 T 是停止,也就是成为 ...

  8. android jUnit test 进行自动化测试

    一. 被test的工程: 新建一个android工程:D_session:它有一个activity:D_sessionActivity:package名:com.mysession 二.测试工程: 新 ...

  9. 1.使用Fiddler进行接口测试

    1.Fiddler既可以用来抓包数据,亦可以进行接口测试.(可参考我的另一篇博客:https://www.cnblogs.com/android-it/p/9523548.html 进行接口的编写) ...

  10. React组件传值方式总结

    1. 子组件向父组件传值 父组件Header: import Nav from 'Nav.js'; class Header extends React.Component { constructor ...