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