作用:
用于建立请求 URL 和处理请求方法之间的对应关系。
出现位置:
类上:
请求 URL 的第一级访问目录。此处不写的话,就相当于应用的根目录。写的话需要以/开头。
它出现的目的是为了使我们的 URL 可以按照模块化管理:
方法上:
请求 URL 的第二级访问目录。
注解请求参数乱码问题
加入参数
@RequestMapping(value = "",produces = "text/html;charset=UTF-8;")
或者在springmvc配置文件中加入配置
<mvc:annotation-driven>
<!-- 指定http返回编码格式,不然返回ajax请求json会出现中文乱码 -->
<mvc:message-converters>
<bean class="org.springframework.http.converter.StringHttpMessageConverter">
<property name="supportedMediaTypes">
<list>
<value>text/html;charset=UTF-8</value>
<value>application/json;charset=UTF-8</value>
<value>*/*;charset=UTF-8</value>
</list>
</property>
</bean>
</mvc:message-converters>
</mvc:annotation-driven>
例:/account/add
/account写在类上
/add写在方法上
属性:
/**
* RequestMapping注解
* 可以写在方法上也可以写在类上 要跟请求名称对应
* 属性: path 和 value相同指定请求的url 都是指映射路径 只写一个属性时 名称可以不写
* method:用于指定请求的方式 决定哪种请求方式执行方法
* method = {RequestMethod.POST}只有post请求才能执行
* params:用于指定限制请求参数的条件 它支持简单的表达式
* 要求请求参数的key和value必须和配置一模一样
* params = {"username"}要求请求的方法必须传一个username的属性
* headers:用于指定限制请求消息头的条件
* 注:以上注解同时出现两个就是与的关系
* @return
*/
控制层代码
/**
* 保存账户
* @return
*/
@RequestMapping(value="/saveAccount",method=RequestMethod.POST)
public String saveAccount() {
System.out.println("保存了账户");
return "success";
}
jsp代码
jsp 代码:
<!-- 请求方式的示例 -->
<a href="account/saveAccount">保存账户,get 请求</a>
<br/>
<form action="account/saveAccount" method="post">
<input type="submit" value="保存账户,post 请求">
</form>
当使用 get 请求时,提示错误信息是 405,信息是方法不支持 get 方式请求