如何在Spring MVC中重用多个表单的模型?

时间:2017-02-16 01:22:14

标签: 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 city;
// getters and setters
}
class Contact {
private String phone;
private String fax;
// getters and setters
}

我将此User用作不同类型用户的多个表单的模型对象。

  1. 对于某些用户类型,联系是可选的或不是必需的。
  2. 地址中的address2是可选的,或者对于某些用户类型不是必需的。
  3. 我的想法是让一个控制器为多种用户类型处理此表单/页面。

    • 如何使用此模型处理上述情况?
    • 如何为此模型编写验证器?

1 个答案:

答案 0 :(得分:1)

您可以根据需要使用一个表单。

可以直接在字段上添加一些注释,例如@NotNull表示地址1,如果它对所有用户类型都是强制性的。

您的使用类应具有标记注释@Valid以验证地址和联系人

public class User {
    ...
    @Valid
    private Address address;
    @Valid
    private Contact contact;
    ...
}

您可以定义类级约束注释和/或交叉参数约束。 (见the example)。

因此,您的User类应使用自定义约束进行注释,您可以在其中检查用户类型,并检查每种类型是否提供必要的字段并正确填充。