在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方法

spring接受实体类参数接受不到父类里的属性

原文地址: https://www.cveoy.top/t/topic/iaim 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录