简单实体参数的封装
创建一个usre类
package com.ming.pojo; public class User { private String name; private int age; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } @Override public String toString() { return "User{" + "name='" + name + '\'' + ", age=" + age + '}'; } }
通过user对象 来传递简单的实体参数
package com.ming.controller; import com.ming.pojo.User; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; @RestController public class Requsetcontroller { // @RequestMapping("/simpleParam") // public String simpleParam(@RequestParam(name="name",required = false) String username, Integer age){ // System.out.println(username+":"+age); // return "OK"; // } @RequestMapping("simplepojo") public String simplepojo(User user){ System.out.println(user); return "ok"; } }
在postman里面用get运行 http://localhost:8080/simplepojo?name=张三&age=18 控制台返回ok并且在Java虚拟机返回相应数据
复杂实体类的封装
创建一个address类
package com.ming.pojo; public class Address { private String province; private String city; public String getProvince() { return province; } public void setProvince(String province) { this.province = province; } public String getCity() { return city; } public void setCity(String city) { this.city = city; } @Override public String toString() { return "Address{" + "province='" + province + '\'' + ", city='" + city + '\'' + '}'; } }
再写一个user类里面包含address
package com.ming.pojo; public class User { private String name; private int age; private Address address; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public Address getAddress() { return address; } public void setAddress(Address address) { this.address = address; } @Override public String toString() { return "User{" + "name='" + name + '\'' + ", age=" + age + ", address=" + address + '}'; } }
再将控制类的代码不变
package com.ming.controller; import com.ming.pojo.User; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; @RestController public class Requsetcontroller { // @RequestMapping("/simpleParam") // public String simpleParam(@RequestParam(name="name",required = false) String username, Integer age){ // System.out.println(username+":"+age); // return "OK"; // } @RequestMapping("simplepojo") public String simplepojo(User user){ System.out.println(user); return "ok"; } }
然后再在postman中输入 http://localhost:8080/simplepojo?name=张三&age=18&address.province=河南&address.city=郑州 并运行
idea控制台返回相应的数据
使用数组封装
直接在控制类中写
package com.ming.controller; import com.ming.pojo.User; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import java.util.Arrays; @RestController public class Requsetcontroller { // @RequestMapping("/simpleParam") // public String simpleParam(@RequestParam(name="name",required = false) String username, Integer age){ // System.out.println(username+":"+age); // return "OK"; // } // @RequestMapping("simplepojo") // public String simplepojo(User user){ // System.out.println(user); // return "ok"; // } @RequestMapping("simplepojo") public String simplepojo(String[] hobby){ System.out.println(Arrays.toString(hobby)); return "ok"; } }
在postman里面传递相应的参数
然后在java控制台返回
使用集合来封装
直接在控制类书写 注意传递是形参@RequestParam List<String> hobby要加@RequestParam
package com.ming.controller; import com.ming.pojo.User; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import java.util.Arrays; import java.util.List; @RestController public class Requsetcontroller { // @RequestMapping("/simpleParam") // public String simpleParam(@RequestParam(name="name",required = false) String username, Integer age){ // System.out.println(username+":"+age); // return "OK"; // } // @RequestMapping("simplepojo") // public String simplepojo(User user){ // System.out.println(user); // return "ok"; // } @RequestMapping("simplepojo") public String simplepojo(@RequestParam List<String> hobby){ System.out.println(hobby); return "ok"; } }
在postman输入 http://localhost:8080/simplepojo?hobby=java&hobby=c++&hobby=篮球
idea控制台输出
数组集合参数需要注意
数组:请求参数名和形参变量名相同,可以直接使用封装
集合:请求参数名与形参变量名相同,通过@RequestParam 绑定 参数关系
@RequestParam:它的作用是将请求参数绑定到方法的参数上。
@RequestParam(“参数名”),其中参数名是请求中的参数名称。这种写法声明了要绑定的参数名,同时也可以指定一些可选的属性,例如默认值和是否必需。