我正在使用Spring 5.1。我想为我提交的表单编写一个验证器,我想自定义返回的错误消息之一。我将错误消息存储在属性文件中...
events_
请在“ {0}”中输入我要输入用户输入的无效用户名的位置。所以在我的验证器中,我有
events_intratable_
但是,尽管已验证“ regForm.getEmail()”为非空,但运行特定分支时,{0}并未填充。我看到此信息已打印到我的JSP页面
already.taken.registration.username=There is already an account created with the username {0}. Did you forget your password?
用自定义数据填写错误消息的正确方法是什么?
答案 0 :(得分:1)
errors.rejectValue("email", "already.taken.registration.username", regForm.getEmail());
这实际上将调用方法
void rejectValue(@Nullable
java.lang.String field,
java.lang.String errorCode,
java.lang.String defaultMessage)
您需要添加带有参数的对象数组:
void rejectValue(@Nullable
java.lang.String field,
java.lang.String errorCode,
@Nullable
java.lang.Object[] errorArgs,
@Nullable
java.lang.String defaultMessage)
您的通话将如下所示:
errors.rejectValue("email", "already.taken.registration.username", new Object[] {regForm.getEmail()}, null);