【问题标题】:How can i pass required parameters without violating validations for other input fields如何在不违反其他输入字段验证的情况下传递所需参数
【发布时间】:2016-05-10 19:28:28
【问题描述】:

我已经为一个模块的所有参数创建了一个输入传递参数类,并且想为不同的操作使用不同的参数

我的传递参数类的字段为

private Integer userId;
@Id
@Column(name = "user_email_id")
@NotEmpty(message = "Please enter your email_Id.")
@Email
@NotNull(message = "Enter last name")
private String userEmailId;
@NotEmpty(message = "Please enter your password.")
@Column(name = "user_password")
private String userPassword;
@NotNull(message = "Enter last name")
@NotEmpty(message = "Please enter your firstName.")
@Column(name = "firstname")
@SafeHtml()
private String firstName;
@SafeHtml()
@NotNull(message = "Enter last name")
@NotEmpty(message = "Please enter your lastName.")
@Column(name = "lastname")
private String lastName;
@NotEmpty
@Pattern(regexp = "(^[0-9]{10,12}$)", message = "Please enter your Mobile Number.")
@NumberFormat
@Column(name = "mobile_number")
private String mobileNumber;
@Column(name = "user_status")
private Integer userStatus;
@Column(name = "isdeleted")
private Integer isDeleted;
@Column(name = "createdUserId")
private Integer createdUserId;
@Column(name = "profile_picturename")
private String profilePicturename;
@Column(name = "address")
private String address;

private Integer isAdmin;

在这里注册我正在使用

 {  
"userEmailId": "sdfdfgfgf",
"userPassword": "fdsdsdf",
"firstName": "sdfsdf",
"lastName": "sfdsdfds",
"mobileNumber": "sdfgdgdf",
"userStatus": 1,
"isDeleted": 0,
"createdUserId": 1,
"profilePictureName": "kfksdjfhksjd",
"address": "sfdsdfsd"

}

在json中传递参数&用于登录尝试传递

{
"userEmailId": "f@g.cm",
"userPassword": "fdsdsdf",
"isAdmin":0

}

parameters ,但对于登录,我也会收到其他字段的验证消息,

谁能告诉我如何只将需要的字段传递给方法,而不会收到我没有传递的字段的验证消息

提前问好

【问题讨论】:

    标签: java validation rest hibernate-validator spring-rest


    【解决方案1】:

    我不太确定将所有潜在参数分组到一个类中是否有意义,但如果您说您只想基于特定用例验证给定子集,则需要使用验证组。查看 Hibernate Validator 在线文档了解此功能。您基本上将不同的约束分配给不同的组,例如Login。然后,当您致电 Validator#validate 时,您还通过了您要验证的组。如果您自己控制验证,那不是问题。如果您正在使用其他一些框架,而这些框架又与 Bean Validation 集成,您将需要检查如何验证给定组。

    【讨论】:

      【解决方案2】:

      如果您的要求是只传递必填字段,那么我觉得您不应该将 @notnull 用于其他非必填字段,如下所示:

      private Integer userId;
      @Id
      @Column(name = "user_email_id")
      @NotEmpty(message = "Please enter your email_Id.")
      @Email
      @NotNull(message = "Enter last name")
      private String userEmailId;
      @NotEmpty(message = "Please enter your password.")
      @Column(name = "user_password")
      private String userPassword;
      @NotEmpty(message = "Please enter your firstName.")
      @Column(name = "firstname")
      @SafeHtml()
      private String firstName;
      @SafeHtml()
      @NotEmpty(message = "Please enter your lastName.")
      @Column(name = "lastname")
      private String lastName;
      @NotEmpty
      @Pattern(regexp = "(^[0-9]{10,12}$)", message = "Please enter your Mobile Number.")
      @NumberFormat
      @Column(name = "mobile_number")
      private String mobileNumber;
      @Column(name = "user_status")
      private Integer userStatus;
      @Column(name = "isdeleted")
      private Integer isDeleted;
      @Column(name = "createdUserId")
      private Integer createdUserId;
      @Column(name = "profile_picturename")
      private String profilePicturename;
      @Column(name = "address")
      private String address;
      
      private Integer isAdmin;
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-08-16
        • 2012-06-29
        • 2015-07-12
        • 1970-01-01
        • 1970-01-01
        • 2014-02-01
        • 1970-01-01
        • 2016-03-07
        相关资源
        最近更新 更多