实体类传递
首先我们在后端定义一个实体类,通过lombok插件重写 有参 无参 get set toString 方法,
然后前端发送数据,后端就会自动收到,然后属性填写
后端代码如下
@AllArgsConstructor
@Data
@NoArgsConstructor
public class role {
private String name;
private String skill;
private Integer age;
@Override
public String toString() {
return "role{" +
"name='" + name + '\'' +
", skill='" + skill + '\'' +
", age=" + age +
'}';
}
}
实体类
然后是对应的映射
@GetMapping("/role")
public void getName4(role role){
System.out.println(role);
}
会输出前端装填的数据
前端的数据如下
请注意,前端和后端的name必须一样
但是前端后端不一样的话,我们可以使用 @RequestParam()来绑定前后的关系
嵌套的实体类
所谓嵌套实体类,请看如下结构
我们首先给出一个address类
@AllArgsConstructor
@NoArgsConstructor
@Data
public class address {
private String address;
}
然后我们在 role类中定义它
@AllArgsConstructor
@Data
@NoArgsConstructor
public class role {
private String name;
private String skill;
private Integer age;
private address address;
@Override
public String toString() {
return "role{" +
"name='" + name + '\'' +
", skill='" + skill + '\'' +
", age=" + age +
", address=" + address +
'}';
}
}
目标,在前端传递四个数据,包括 address
通过 address.address可以传递数据给后端
数组传值
首先我们完善后端的方法
@GetMapping("/shuzu") public void getName5(String[] name){ for (int i = 0; i <name.length;i++){ System.out.println(name[i]); } }
前端如下
请注意:我们需要的是 只要前端的name 和后端的数组名一致就可以了
输出结果如下
集合的传递
s首先给出后端代码
@GetMapping("/jihe") public void getName6(List<String> name){ for ( String i : name){ System.out.println(i); }
前端代码
为什么出错呢?
java.lang.IllegalStateException: No primary or single unique constructor found for interface java.util.List
大致是 前端传递数据,但是后端不知道这是数据,于是去创建集合,但是创建失败
于是我们只需要告诉后端,前面传递过来的是一个集合数据就可以了
只要添加
@RequestParam 就可以了