SpringMVC学习总结(二)@RequestMapping注解的功能、位置/@RequestMapping注解的属性/支持ant风格的路径/支持路径的占位符/@RequestMapping派生注解

一、@RequestMapping注解的功能

  • 从注解名称上我们可以看到,@RequestMapping注解的作用就是将请求和处理请求的控制器方法关联起来,建立映射关系
  • SpringMVC 接收到指定的请求,就会来找到在映射关系中对应的控制器方法来处理这个请求。

二、@RequestMapping注解的位置

  • @RequestMapping注解既可以标识在类上也可以标识在方法上
    • @RequestMapping 标识一个类:设置映射请求的请求路径的初始信息
    • @RequestMapping 标识一个方法:设置映射请求请求路径的具体信息
  • 先访问初始信息 才能访问具体信息

案例
首先,创建一个 web 模块并配置好web.xml和部署Tomcat
其次,在webapp/WEB-INF/templates/下编写html文件:

  • index.html:
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org"><!--这个是thymeleaf命名空间-->
<head>
	<meta charset="UTF-8">
	<title>首页</title>
</head>
<body>
这是index.html<br>
<!--使用了thymeleaf的语法,它就会自动给我们在/target前面添加上下文路径-->
<a th:href="@{/test/testRequestMapping}">跳转到target.html</a>
</body>
</html>
  • target.html:
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
	<meta charset="UTF-8">
	<title>Title</title>
</head>
<body>
这是target.html
</body>
</html>

然后,编写请求控制器controller代码:

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class IndexController {
   

    @RequestMapping("/")
    public String testRequestMapping(){
   
        return "index";
    }
}
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
@RequestMapping("/test")
public class MyController {
   
	
	//此时请求映射所映射的请求的请求路径为:/test/testRequestMapping
    @RequestMapping("/testRequestMapping")
    public String testRequestMapping(){
   
        return "target";
    }
}

运行Tomcat:
在这里插入图片描述

在这里插入图片描述
假如有两个controller类,类上面都没有被@RequestMapping注解,但它们都同时有一个@RequestMapping("/testRequestMapping")注解的控制器方法,那么一运行就会报错。因为当浏览器访问到了localhost:8080/工程路径/testRequestMapping的时候,向服务器发起请求,服务器不知道到底去找哪一个方法,因此我们就可以在两个controller类上面再加上不同value值的@RequestMapping注解。

三、@RequestMapping注解的属性

(一)value属性

  • @RequestMapping注解的value属性通过请求的请求地址匹配请求映射
  • @RequestMapping注解的value属性是一个字符串类型的数组,表示该请求映射能够匹配多个请求地址所对应的请求
  • @RequestMapping注解的其他属性可以不设置,但value属性必须设置

案例
基于上例做了修改:
index.html:

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org"><!--这个是thymeleaf命名空间-->
<head>
	<meta charset="UTF-8">
	<title>首页</title>
</head>
<body>
这是index.html<br>
<a th:href="@{/testRequestMapping}">跳转到target.html</a><br>
<a th:href="@{/testRM}">跳转到target.html</a>
</body<
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值