package cn.sp.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import javax.websocket.server.PathParam;
@Controller
@RequestMapping("rp")
public class RequestParamAnnotationComparedController {
/** Controller层请求参数注解 @RequestParam @PathVariable @PathParam 对比
* @RequestParam Request 里面拿取值
* @PathParam Request 里面拿取值
* @PathVariable URL 里面拿取值
*
* 详细的概念暂时不知道,比如有些状态为什么是404 而有些又是 400 500
* 非常讨厌CSDN抄来抄去,自己都不验证一下.
* **/
//@RequestParam Request 里面拿取值
//http://localhost:8085/rp/RequestParamURL/10 400
//http://localhost:8085/rp/RequestParamURL?id=11 404
@ResponseBody
@RequestMapping("RequestParamURL/{id}")
public String RequestParamURL( @RequestParam int id){
return "RequestParamURL"+id;
}
//http://localhost:8085/rp/RequestParamRequest/20 404
//http://localhost:8085/rp/RequestParamRequest?id=21 ok
@ResponseBody
@RequestMapping("RequestParamRequest")
public String RequestParamRequest(@RequestParam int id){
return "RequestParamRequest"+id;
}
// @PathParam Request 里面拿取值
//http://localhost:8085/rp/PathParamURL/30 500
//http://localhost:8085/rp/PathParamURL?id=31 404
@ResponseBody
@RequestMapping("PathParamURL/{id}")
public String PathParamURL(@PathParam("id")int id){
return "PathParamURL"+id;
}
//http://localhost:8085/rp/PathParamRequest/40 404
//http://localhost:8085/rp/PathParamRequest?id=41 ok
@ResponseBody
@RequestMapping("PathParamRequest")
public String PathParamRequest(@PathParam("id")int id){
return "PathParamRequest"+id;
}
//@PathVariable URL 里面拿取值
//http://localhost:8085/rp/PathVariableURL/50 ok
//http://localhost:8085/rp/PathVariableURL?id=51 404
@ResponseBody
@RequestMapping("PathVariableURL/{id}")
public String PathVariableURL(@PathVariable("id")int id){
return "PathVariableURL"+id;
}
//http://localhost:8085/rp/PathVariableRequest/60 404
//http://localhost:8085/rp/PathVariableRequest?id=61 500
@ResponseBody
@RequestMapping("PathVariableRequest")
public String PathVariableRequest(@PathVariable("id")int id){
return "PathVariableRequest"+id;
}
/***** 总结:
* @RequestParam Request 里面拿取值
* 请求路径+参数 写法可以是 //http://localhost:8085/rp/RequestParamRequest?id=21 ok
* 也就是说在?后面拼接参数 id=21,
* 不能是 //http://localhost:8085/rp/RequestParamURL/10 ,不然会报 400 错误.
* 至于还没有其他用法,等以后再更新,大家知道也可以提出来.
*
* @PathParam Request 里面拿取值
* 使用方法和 @RequestParam 相同.
*
* @PathVariable URL 里面拿取值
* 请求路径写法是 http://localhost:8085/rp/PathVariableURL/50 ,也就是把参数拼接到URL当中,
* 再通过注解获取.
* 如果请求路径+参数写成 //http://localhost:8085/rp/PathVariableURL?id=51 会报 404 错误.
*
* *****/
}
Controller层请求参数注解 @RequestParam @PathVariable @PathParam
最新推荐文章于 2023-12-25 10:42:01 发布