SpringMVC中controller入参接收部分注解简单介绍

RequestHeader:@RequestHeader 注解,可以把Request请求header部分的值绑定到方法的参数上。

public void getAccountByOpenId(@RequestHeader("id") String id){};

api:

CookieValue:@CookieValue可以把Request header中关于cookie的值绑定到方法的参数上。

public void getAccountByOpenId(@CookieValue("JSESSIONID") String id){}; 

RequestParam:在处理方法入参处使用 @RequestParam 可以把请求参数传递给请求方法。

– value:参数名

– required:是否必须。默认为 true, 表示请求参数中必须包含对应的参数,若不存在,将抛出异常

@RequestMapping("worker") public String handle(@RequestParam(value="name") String un, @RequestParam(value="age") int age) { System.out.println("a worker's request has come. name: "+un+", age: "+age); return "success"; }

 

RequestBody:1) 该注解用于读取Request请求的body部分数据,使用系统默认配置的HttpMessageConverter进行解析,然后把相应的数据绑定到要返回的对象上; 
2) 再把HttpMessageConverter返回的对象数据绑定到 controller中方法的参数上。

 

@RequestMapping(value = "user")
@ResponseBody
// 将ajax(datas)发出的请求写入 User 对象中
public User login(@RequestBody User user//接收body中的json字符串) {   
// 这样就不会再被解析为跳转路径,而是直接将user对象写入 HTTP 响应正文中
    return user;    
}

 

 

 

Responsebody:@Responsebody 注解表示该方法的返回的结果直接写入 HTTP 响应正文(ResponseBody)中,一般在异步获取数据时使用,通常是在使用 @RequestMapping 后,返回值通常解析为跳转路径,加上 @Responsebody 后返回结果不会被解析为跳转路径,而是直接写入HTTP 响应正文中。

 

@RequestMapping("/login")   

@ResponseBody   

public User login(User user){ return user; } //User字段:userName pwd 那么在前台data:'{"userName":"xxx","pwd":"xxx"}'   

//效果等同于如下代码:   

@RequestMapping("/login")   

public void login(User user, HttpServletResponse response){     response.getWriter.write(JSONObject.fromObject(user).toString());   }

 

PathVariable:当使用@RequestMapping URI template 样式映射时, 即 url/{id}, 这时的paramId可通过 @Pathvariable注解绑定它传过来的值到方法的参数上。

 

@RequestMapping("/test/{id}")  

 public void findPet(@PathVariable String id, Model model) {       // implementation omitted    }  

 

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值