当前位置: 代码迷 >> 综合 >> Springmvc(一)RequestMapping 注解
  详细解决方案

Springmvc(一)RequestMapping 注解

热度:48   发布时间:2024-02-09 00:01:02.0

RequestMapping 注解

使用说明:

源码:
@Target({ElementType.METHOD, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Mapping
public @interface RequestMapping { }

作用:

用于建立请求 URL 和处理请求方法之间的对应关系。
出现位置:
类上:
请求 URL 的第一级访问目录。此处不写的话,就相当于应用的根目录。写的话需要以/开头。
它出现的目的是为了使我们的 URL 可以按照模块化管理:
例如:
账户模块:
/account/add
/account/update
/account/delete

订单模块:
/order/add
/order/update
/order/delete
/order的部分就是把 RequsetMappding 写在类上,使我们的 URL 更加精细。
方法上:
请求 URL 的第二级访问目录。
属性:
value:用于指定请求的 URL。它和 path 属性的作用是一样的。
method:用于指定请求的方式。
params:用于指定限制请求参数的条件。它支持简单的表达式。要求请求参数的 key 和 value 必须和
配置的一模一样。
例如:
params = {“accountName”},表示请求参数必须有 accountName
params = {“moeny!100”},表示请求参数中 money 不能是 100。
headers:用于指定限制请求消息头的条件。
注意:
以上四个属性只要出现 2 个或以上时,他们的关系是与的关系

使用示例:

控制器代码:
/** * RequestMapping 注解出现的位置 */
@Controller("accountController")
@RequestMapping("/account")
public class AccountController {
@RequestMapping("/findAccount")
public String findAccount() {
System.out.println("查询了账户。。。。");
return "success";} }

jsp 中的代码:

<%@ page language="java" contentType="text/html; charset=UTF-8" 
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd"> 
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>requestmapping 的使用</title>
</head> <body>
<!-- 第一种访问方式 --> <a href="${pageContext.request.contextPath}/account/findAccount">
查询账户
</a> <br/>
<!-- 第二种访问方式 --> <a href="account/findAccount">查询账户</a>
</body>
</html>

注意:
当我们使用此种方式配置时,在 jsp 中第二种写法时,不要在访问 URL 前面加/,否则无法找到资源。

method 属性的示例:

控制器代码:
/** * 保存账户 * @return */
@RequestMapping(value="/saveAccount",method=RequestMethod.POST)
public String saveAccount() {
System.out.println("保存了账户");
return "success"; }

jsp 代码:

<!-- 请求方式的示例 --><a href="account/saveAccount">保存账户,get 请求</a><br/>
<form action="account/saveAccount" method="post"> 
<input type="submit" value="保存账户,post 请求">
</form>

在这里插入图片描述

params 属性的示例:

控制器的代码:
/** * 删除账户 * @return */
@RequestMapping(value="/removeAccount",params= {"accountName","money>100"})
public String removeAccount() {
System.out.println("删除了账户");
return "success"; }

jsp 中的代码:

<!-- 请求参数的示例 --><a href="account/removeAccount?accountName=aaa&money>100">删除账户,金额 100</a><br/>
<a href="account/removeAccount?accountName=aaa&money>150">删除账户,金额 150</a>

在这里插入图片描述

  相关解决方案