Java 如何操作验证约束的validatedValue
我使用模式约束来确保排序代码只是数字。如果输入了无效字符,我希望在消息中输出特定字符。我不确定如何从validatedValue中获取无效字符。我现在有它的设置,只是把什么是输入现在,所以说你输入 11-22-33 您将得到:字段包含无效字符:排序代码“11-22-33” 但我希望:字段包含无效字符:排序代码“-” 我目前的代码是:Java 如何操作验证约束的validatedValue,java,spring,Java,Spring,我使用模式约束来确保排序代码只是数字。如果输入了无效字符,我希望在消息中输出特定字符。我不确定如何从validatedValue中获取无效字符。我现在有它的设置,只是把什么是输入现在,所以说你输入 11-22-33 您将得到:字段包含无效字符:排序代码“11-22-33” 但我希望:字段包含无效字符:排序代码“-” 我目前的代码是: @Pattern(regexp = "^[0-9]*$", message="Fields contain invalid characters: sort cod
@Pattern(regexp = "^[0-9]*$", message="Fields contain invalid characters: sort code '${validatedValue}'")
private String sortCode;
也许是这样的:
@Pattern(regexp = "^[0-9]*$", message = "Fields contain invalid characters: sort code '${validatedValue.replaceAll(\"\\\\d\", \"\")}'")
private String sortCode;
上述代码将为1a2b3-D
的sortCode
生成以下消息:
Fields contain invalid characters: sort code 'ab-D'
如果输入包含多个无效字符,例如“foo bar”,那么您希望返回什么错误消息?我认为只需找到第一个无效字符,即“f”。一个无效字符列表也可以,但我不太担心。