@方法参数的模式注释



我正在尝试验证emailId,它是方法参数和rest端点的Query参数的一部分。在方法参数中使用@Pattern注释无效。有没有更好的方法可以使用注释来处理这种情况

public EmailResponse isEmailRegistered(HttpServletRequest request,
         @RequestParam("emailId") @Valid @Pattern(message = "Email is invalid", regexp = "^.+@.+\..+$") final String emailId) 

我试过上面的方法,但不起作用。因为电子邮件Id字段是查询参数,所以我无法将其包装在对象中并在其上添加验证器

我试着把它包装在下面的包装器对象中,但没有成功

public EmailResponse isEmailRegistered(HttpServletRequest request,
         @RequestParam("emailId") @Valid final EmailIdWrapper emailId, final BindingResult bindingResult) 

EmailId包装类

public class EmailIdWrapper implements Serializable{
@NotNull(message = "Email Id is required")
@Size(min = 5, max = 50, message = "Invalid length for email")
@Pattern(message = "Invalid email id", regexp = "^.+@.+\..+$")
private String emailId;
public String getEmailId() {
    return emailId;
}
public void setEmailId(String emailId) {
    this.emailId = emailId;
}

}

在这种情况下,我得到了一个conversionnotsupported错误,这是非常明显的,因为url参数是一个字符串,我正在分配给一个对象。

我知道有点晚了,但是你试过放吗

@已验证

在控制器类级别?

最新更新