请参考以下控制器代码:-
@GetMapping("/fetch)
void fetchData( @RequestParam
@Pattern(regexp="(^$|[0-9]{10})",message = "Mobile number must be 10 digits")
String mobileNumber)
{
.........//some functionality
}
现在如果我调用上面的API:-
http://localhost:8080/fetch?mobileNumber=123456789
我收到错误消息:- 手机号码必须为 10 位数字。
但是,如果我使用空手机号码使用相同的 API,则模式验证将不起作用,并且将继续执行该方法。所以如果我调用以下端点:-
http://localhost:8080/fetch?mobileNumber=
验证不起作用,我没有收到错误消息。
您能告诉我问题是什么吗?为什么第二个请求没有触发错误消息?我错过了与正则表达式相关的东西吗?
接受
。CharSequence
元素被视为有效。null
@Pattern
注释的 JavaDoc。
因为
@Pattern
允许空/空值。为了防止这些情况发生,您需要在场上额外添加 @NotEmpty
。