@PathVariable

PathVariable用法跟单词的意思一样,路径变量。
常见的使用方式就是restFul,表达式中的占位变量要和入参的形参一致,上案例

demo1:单参
url : http://127.0.0.1:8080/good/100

@RequestMapping("/good/{id}")
public String auditLog(@PathVariable long id) {
    System.out.println(id);
    return "index";
}

demo2:多参
url : http://127.0.0.1:8080/good/10/100

@RequestMapping("/good/{type}/{id}")
public String auditLog(@PathVariable long type, @PathVariable long id) {
    System.out.println(id);
    System.out.println(type);
    return "index";
}

@RequestParam

接收的参数是来自HTTP请求体或请求url的QueryString中
使用该注解时Content-Type字段,需要为application/x-www-form-urlencoded
同时,支持post和get

demo1:最简单的
url : http://127.0.0.1:8080/test?id=100

@RequestMapping("/test")
public String method01(@RequestParam int id) {
    System.out.println(id);
    return "index";
}

基于上面这种情况,可能会出现问题。
因此,一般都不写基本类型,都会写基本类型的包装类,也可以写例如@RequestParam Integer id,可以写@RequestParam String id 它会自动转换。如果你非要写int,那么也可以使用它的属性required 是否必填defaultValue 默认值,value URL中的key

demo2: URL中的key与形参一致
url : http://127.0.0.1:8080/test?id=100

@RequestMapping("/test")
public String method01(@RequestParam(required = true, defaultValue = "0") int id) {
    System.out.println(id);
    return "index";
}

demo3:URL中的key与形参不一致
url : http://127.0.0.1:8080/test?uid=100

@RequestMapping("/test")
public String method01(@RequestParam(value = "uid", defaultValue = "0") int id) {
    System.out.println(id);
    return "index";
}

demo4:URL中一个key有多个值
url : http://127.0.0.1:8080/test?id=100&id=200

public String method01(@RequestParam(value="id") long[]  id){
    System.out.println(id);
    return "index";
}
//或者是
public String method01(@RequestParam(value="list") List<Integer> list){
    System.out.println(list);
    return "index";
}

demo5:一般使用map集合来接受多参
url : http://127.0.0.1:8080/test?id=100&name=tom

public String method01(@RequestParam Map<String, Object> params){
    String name = params.get("name").toString;
    System.out.println(name );
    return "index";
}

@RequestBody

该注解常用于接受请求体中非application/x-www-form-urlencoded编码格式的数据,比如:application/jsonapplication/xml,现在前后端分离系统那么多,所以这才是主角。

先这样,后期再补充,这玩意还有点费劲~~

Last modification:October 14th, 2020 at 10:20 am
如果觉得我的文章对你有用,请随意赞赏