SpringMVC(三)-常⽤注解⼀、@RequestMapping
1、作⽤
⽤于建⽴请求URL和处理请求⽅法之间的对应关系。
2、位置
类上:请求URL的第⼀级访问⽬录。此处不写的话,就相当于应⽤的根⽬录。写的话需要以/开头。⽅法上:请求URL的第⼆级访问⽬录。
3、参数
(1)path:指定请求路径的url
(2)value:value属性和path属性是⼀样的
(3)mthod: 指定该⽅法的请求⽅式
(4)params:指定限制请求参数的条件
(5)headers 发送的请求中必须包含的请求头
4、主要代码⽰例
北京现代瑞纳报价
页⾯代码
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>requestmapping的使⽤</title>
</head>
<body>
<!-- 注意:第⼆种写法,不要在访问URL前⾯加 / ,否则⽆法到资源。 -->
<!-- 第⼀种访问⽅式 -->
<a href="${tPath}/account/findAccount"> 查询账户 </a>
<br/>
<!-- 第⼆种访问⽅式 -->
<a href="account/findAccount">查询账户</a>
</body>
</html>
controller代码
@Controller("accountController")
@RequestMapping("/account")
public class AccountController {
@RequestMapping("/findAccount")
public String findAccount() {
雅迪电动车价格及图片2021新款
System.out.println("查询账户。。。。");
return "success";
}
}
⼆、@RequestParam
1、作⽤
把请求中指定名称的参数,给控制器中的形参赋值。
2、位置
⽅法中的参数前。
3、参数
(1)value:请求参数中的名称
(2)required:请求参数中是否必须提供此参数,默认值是true。表⽰必须提供,如果不提供将报错。
4、主要代码⽰例
<!-- 页⾯代码 -->
<a href="test/testRequestParam?name=test">RequestParam注解测试</a>
/**
* 如果test⽅法中第⼀个参数由username变为name,与请求URL中的参数名⼀致,则@RequestParam可以省略。
* 第⼆个参数age,注解中设置required=false,则URL中虽然没有这个参数,也不会报错。
*/
@Controller("testController")
@RequestMapping("/test")
public class testController {
@RequestMapping("/testRequestParam")
public String test(@RequestParam("name")String username, @RequestParam(value="age",required=false)Integer age) {
System.out.println(username+","+age);
return "success";
}
}
三、@RequestBody
1、作⽤
⽤于获取请求体内容,直接使⽤得到是key=value&结构的数据。get请求⽅式不适⽤。
2、位置
⽅法中的参数前。
3、参数
required:必须有请求体,默认值是true。当取值为true时,get请求⽅式会报错。如果取值为false,get请求得到是null。
4、主要代码⽰例
<!-- 表单,POST请求 -->
<form action="test/testRequestBody" method="post">
姓名:<input type="text" name="username" ><br/>
年龄:<input type="text" name="age" ><br/>
<input type="submit" value="保存">
</form>
<!-- GET请求 -->
<a href="test/testRequestBody?body=test">requestBody注解get请求</a>
@Controller("testController")
@RequestMapping("/test")
public class testController {
@RequestMapping("/testRequestBody")
public String test(@RequestBody(required=false) String body) {
System.out.println(body);
return "success";
}
}
//POST请求输出为:username=Jack&age=18
/
骊威安全气囊多少钱/GET请求输出为:null
四、@PathVaribale
1、作⽤
⽤于绑定url中的占位符。例如:请求url中 /delete/{id},这个{id}就是url占位符。
url⽀持占位符是spring3.0之后加⼊的。是springmvc⽀持rest风格URL的⼀个重要标志。
2、位置
⽅法中的参数前。
3、参数
(1)value:⽤于指定url中占位符名称。
(2)required:是否必须提供占位符。
4、主要代码⽰例
<!-- 页⾯代码 -->
<a href="test/findById/10">根据ID查询数据</a>
@Controller("testController")
深圳二手车行@RequestMapping("/test")
public class testController {
@RequestMapping("/findById/{id}")
public String test(@PathVariable("id") Integer id) {
System.out.println(id);
return "success";
}
}
/
/执⾏后控制台会打印:10
五、@RequestHeader
1、作⽤
⽤于获取请求消息头信息。
2、位置
⽅法中的参数前。
3、参数
(1)value:消息头名称。
(2)required:是否必须有此消息头。
4、主要代码⽰例
<!-- 页⾯ -->
<a href="test/testRequestHeader">获取请求消息头</a>
@Controller("testController")
@RequestMapping("/test")
public class testController {
@RequestMapping("/testRequestHeader")
public String test(@RequestHeader(value="Accept-Language", required=false)String requestHeader) {            System.out.println(requestHeader);
return "success";
}
}
//执⾏后控制台会打印:zh-CN,zh;q=0.9
六、@CookieValue
1、作⽤
⽤于把指定cookie名称的值,传⼊控制器⽅法参数。
2、位置
⽅法中的参数前。
3、参数
(1)value:指定cookie的名称。
(2)required:是否必须有此cookie。
4、主要代码⽰例
<!-- 页⾯ -->
<a href="test/testCookieValue">绑定cookie的值</a>
@Controller("testController")
@RequestMapping("/test")
public class testController {
@RequestMapping("/testCookieValue")
public String test(@CookieValue(value="JSESSIONID",required=false) String cookieValue) {
System.out.println(cookieValue);
return "success";
}
}
七、@ModelAttribute
1、作⽤
在⽅法上,表⽰当前⽅法会在控制器的⽅法执⾏之前,先执⾏。可以修饰没有返回值的⽅法,可以修饰有具体返回值的⽅法。出现在参数上,获取指定的数据给参数赋值。
2、位置
⽅法上,或⽅法中的参数前。
3、参数
(1)value:⽤于获取数据的key。key可以是POJO的属性名称,也可以是map结构的key。
(2)required:是否必须有此cookie。
车神来了
4、应⽤场景
当提交表单数据不是完整的实体数据时,保证没有提交的字段使⽤数据库原来的数据。
5、主要代码⽰例
奔驰c200时尚型
(1)ModelAttribute修饰⽅法带返回值
<form action="test/updateUser" method="post">
名称:<input type="text" name="username" ><br/>
年龄:<input type="text" name="age" ><br/>
<input type="submit" value="保存">
</form>