springMvc接口请求参数

//作用:通常用在`Controller`里,用于设置访问路径
@RequestMapping(
    value="访问路径",
    method=请求方式,
    params="请求参数"
)

一、接收表单参数

`@RequestParam(value="表单参数名称", required=是否必须,defaultValue = "默认参数")`
简单参数绑定(不加注解@RequestParam,名称与表单参数保持相同)

- 如果客户端提交的表单参数名称,和Controller里方法参数名称一样,Spring会把表单数据直接绑定到方法参数上

- SpringMVC会自动绑定同名参数,并自动转换类型

绑定简单POJO对象(java对象接收,成员变量名一致)

- 客户端提交的表单参数名称,必须等于JavaBean的属性名

绑定复杂POJO

- 通常把List、Map等放到POJO对象里

- 客户端提交的表单参数名称,必须和POJO里的属性名称相等

- 设置List的数据时,表单参数名称:属性名[索引].属性名

- 设置Map的数据时,表单参数名称:属性名['key'].属性名

 

<form action="${pageContext.request.contextPath}/param/complexPojo" method="post">
    <h5>vo里的user</h5>
    <input type="text" name="user.name" value="tom"><br>
    <input type="text" name="user.age" value="20"><br>
    <h5>vo里的userList</h5>
    <input type="text" name="userList[0].name" value="tom1"><br>
    <input type="text" name="userList[0].age" value="21"><br>
    <input type="text" name="userList[1].name" value="tom2"><br>
    <input type="text" name="userList[1].age" value="22"><br>
    <h5>vo里的userMap</h5>
    <input type="text" name="userMap['u1'].name" value="jack1"><br>
    <input type="text" name="userMap['u1'].age" value="31"><br>
    <input type="text" name="userMap['u2'].name" value="jack2"><br>
    <input type="text" name="userMap['u2'].age" value="32"><br>
    <br>
    <input type="submit" value="提交">
</form>


public class QueryVO {
    private User user;
    private List<User> userList;
    private Map<String, User> userMap;

    //get/set...
    //toString...
}

@RequestMapping("/complexPojo")
public String pojoParam2(QueryVO vo){
    System.out.println(vo);
    return "success";
}

  

@RequestMapping

  • 语法:@RequestBody(requried=是否必须有请求体)

  • 作用位置:用于方法的参数上,表示把请求体的数据,赋值给方法参数

  • 要求:必须是POST方式提交

    • 只有POST方式提交,才有请求体;GET方式提交,没有请求体

@RequestMapping("/body2")
public String body2(@RequestBody User user){
    System.out.println(user);
    return "success";
}

 

@PathVariable

@RequestMapping(value = "/pathVar/{id}",method = RequestMethod.GET)
public String pathVar(@PathVariable("id") Integer id){
    System.out.println(id);
    return "success";
}

 

 

表单提交 formdata提交的用@requestParams 或者javabean对象绑定

json提交的,后端用@requestbody接收json数据转成

 

posted @ 2021-02-08 00:57  炼金术士0z  阅读(184)  评论(0编辑  收藏  举报