(一)常用注解

1、@RequestParam

@RequestParam主要用于在SpringMVC后台控制层获取参数时,前端传入的参数和方法形参不一致时。

它支持三个属性:

value:默认属性,用于指定前端传入的参数名称

required:用于指定此参数是否必传

defaultValue:当参数为非必传参数且前端没有传入参数时,指定一个默认值。

public void demo1(
@RequestParam(value = "name",required = false,defaultValue = "sss") String username){
}

 

2、@RequestHeader

@RequestHeader主要用于从请求头中获取参数。它支持的属性跟@RequestParam一样

public String demo2(@RequestHeader("cookie") String cookie){}

 

3、 @CookieValue

@CookieValue 用于从cookie中取值。

public String demo3(@CookieValue("JSESSIONID") String jsessionid){}

 

4、 @RequestBody

@RequestBody用于接收前端传入的消息体,注意:只有POST请求才有消息体。

<form method="post" action="${pageContext.request.contextPath}/demo4">
<input type="text" name="name" value="zhangsan">
<input type="submit">
</form>
 
public String demo4(@RequestBody String body){
}

 

它的另一个主要用法是用于接收Ajax提交的异步数据。

<script type="application/javascript" language="JavaScript" src="js/jquery.js"></script>
<script>
$(function () {
$("#sub").click(function () {
$.ajax({
type:"POST",
url:"${pageContext.request.contextPath}/demo6",
contentType:"application/json",
dataType:"json",
data:'{"name":"admin","id":"1"}',
success:function(data){}
});
});
})
</script>
 
public String demo6(@RequestBody String body){}
public String demo6(@RequestBody User user){}

 

5、 @ResponseBody

将我们的返回值异步响应为json数据

@ResponseBody
public List<Object> showInfo(){
}

 

面试题:@RequestBody和@ResponseBody都是用来干什么的?

 

6、 @SessionAttributes(value = { "a",”b”...})

可以将ModelMap中共享的内容存放到session域中

@SessionAttributes(value = { "a",”b”...})
public class AnotationController {
@RequestMapping("setSessionScope")
public String setSessionScope(Map map,Model model, ModelMap modelMap, HttpServletRequest request) {
map.put("a", "1");
model.addAttribute("b", "2");
modelMap.addAttribute("c", "3");
mav.addObject("d", "4");
request.setAttribute("e", "5");
return "success";
}
}:

7、@ModelAttribute() 

向请求域中添加信息

(1)将这个注解放入到参数位置

a.从表单中获取普通的数据,同时将这个数据以表单控件的名称为key放入到了请求域中

b.表单的数据被封装成了一个自己定义pojo对象,注解中的key可以任意命名

@RequestMapping("a4")
public String a4(ModelMap modelMap,  String name) {
return "success";
}

(2) 将这个注解放到方法上面

注解中的key,任意赋值.

作用: 为当前的controller 中所有的可以访问的方法提供公共数据.

@ModelAttribute("dogs")
 public Object a6() {
return list;
}

8、 @RequestMapping

设置控制的访问路径

@RequestMapping(value= {"a1"},method= {RequestMethod.GET,RequestMethod.PUT})

9、 @PathVariable

RESTREST是一种软件架构风格,或者说是一种规范,其强调HTTP应当以资源为中心。 它规范了HTTP请求动作,使用四个词语分别表示对资源的CRUD操作: GET(获取)、POST(新建)、PUT(更新)、DELETE(删除)

 

spring mvc常用注解 springmvc常用注解的参数_表单

 

 

@PathVariable就是用来从Rest风格的URL中获取参数的注解
//访问/demo7/Tom 
@RequestMapping("/demo7/{name}")
public void demo7(@PathVariable String name){
}