Java 如何在SpringMVC中重用多个表单的模型?
我有低于标准的课程Java 如何在SpringMVC中重用多个表单的模型?,java,spring,spring-mvc,Java,Spring,Spring Mvc,我有低于标准的课程 public class User { private String name; private String age; private Address address; private Contact contact; // getters and setters } class Address { private String address1; private String address2; private String state; private String c
public class User {
private String name;
private String age;
private Address address;
private Contact contact;
// getters and setters
}
class Address {
private String address1;
private String address2;
private String state;
private String city;
// getters and setters
}
class Contact {
private String phone;
private String fax;
// getters and setters
}
我将此用户用作不同类型用户的多个表单的模型对象
联系人是可选的,或者对于某些用户类型不是必需的。
Address中的address2是可选的,或者对于某些用户类型不是必需的。
我的想法是让一个控制器处理多个用户类型的表单/页面
如何使用此模型处理上述场景?
如何为该模型编写验证程序?
您可以根据需要使用一种表单 一些注释可以直接添加到字段上,例如,如果对所有用户类型都是必需的,则address1的@NotNull your use类应具有marker annotation@Valid以验证地址和联系人
public class User {
...
@Valid
private Address address;
@Valid
private Contact contact;
...
}
您还可以定义类级约束、注释约束和/或跨参数约束。看
因此,您的用户类应该使用自定义约束进行注释,您可以在其中检查用户类型,并为每个类型检查是否提供了必要的字段并正确填充。感谢您提供了出色的解决方案。如果模型属性中没有对象,您有没有建议如何在JSP中隐藏表单元素?例如,如果地址对象未添加到用户对象,我希望JSP中的地址部分被隐藏?您可以使用“谢谢”。这真的很有帮助。