第五天:SpringMVC常用注解

(一)常用注解

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(删除)

 

@PathVariable就是用来从Rest风格的URL中获取参数的注解

//访问/demo7/Tom

@RequestMapping("/demo7/{name}")

public void demo7(@PathVariable String name){

}

原文地址:https://www.cnblogs.com/masterhxh/p/13859457.html