spring接受实体类参数接受不到父类里的属性
在Spring中,如果一个类是一个实体类,可以在Controller的方法中直接接受该实体类作为参数。但是,如果该实体类继承了父类,Spring默认只会绑定实体类自身的属性,不会自动绑定父类的属性。
如果需要接受父类的属性,可以使用@ModelAttribute注解来手动绑定父类的属性。
例如,假设有一个父类Person和一个子类Student,可以按照以下方式接受实体类参数并绑定父类属性:
public class Person {
private String name;
// 父类属性和方法
}
public class Student extends Person {
private String school;
// 子类属性和方法
}
@Controller
public class MyController {
@PostMapping("/save")
public String save(@ModelAttribute("student") Student student) {
// 通过@ModelAttribute注解手动绑定父类属性
String name = student.getName();
String school = student.getSchool();
// 对接收到的实体类进行操作
return "redirect:/students";
}
}
在上面的例子中,@ModelAttribute("student")表示将接受到的实体类绑定到"student"这个名称上。然后可以通过student.getName()和student.getSchool()来获取父类和子类的属性。
另外,如果想要在接受实体类参数的方法中能够接受到父类的属性,还需要确保父类和子类都有相应的getter和setter方法
原文地址: https://www.cveoy.top/t/topic/iaim 著作权归作者所有。请勿转载和采集!