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

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>

当使用 get 请求时,提示错误信息是 405,信息是方法不支持 get 方式请求

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>

当我们点击第一个超链接时,可以访问成功。
当我们点击第二个超链接时,无法访问。如下图:

headers示例

控制器代码

猜你喜欢

转载自www.cnblogs.com/ccoonngg/p/11838783.html