SpringMVC:如何将两个输入标记为无效?
我在我的 web 应用程序中使用 SpringMVC 来处理表单及其验证。
在我的验证器中,我有这样的代码:
@Override
public void validate(final Object target, final Errors errors)
{
final LoginCommand loginCommand = (LoginCommand) target;
if (checkCredentials(loginCommand.getLogin(), loginCommand.getPassword()) {
errors.rejectValue("login", "login.error.invalid");
errors.rejectValue("password", "login.error.invalid");
}
//..
这样,当填充 cssErrorClass 属性时,我会得到正确呈现的无效值。 现在的问题是,login.error.invalid 消息位于我将显示两次的错误消息列表中。
将两个输入字段标记为无效但错误列表中只有一条消息的最佳方法是什么? 我搜索了 SpringMVC 文档/api 并没有找到一种在不提供消息的情况下拒绝字段的方法。
I am using SpringMVC in my webapp to handle forms and their validation.
In my Validator I have code like this:
@Override
public void validate(final Object target, final Errors errors)
{
final LoginCommand loginCommand = (LoginCommand) target;
if (checkCredentials(loginCommand.getLogin(), loginCommand.getPassword()) {
errors.rejectValue("login", "login.error.invalid");
errors.rejectValue("password", "login.error.invalid");
}
//..
This way I get the properly rendered invalid whenn filling the cssErrorClass attribute.
Problem now is that the login.error.invalid message is in the error-message list I am going to display twice.
What is the best way to mark two input fields invalid, but only have one message in the error list?
I searched the SpringMVC documentation/api all over and did not find a way to reject a field without supplying a message.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我建议在这种情况下将所有表单标记为无效:
并将其显示在视图中
I suggest to mark all form as invalid in this case:
And show it on view by
Assuming
您必须通过将 sf:errors 标记放置在 as:bind 标记中来限制它。这是一个示例(路径可能不适合您的需求,但对于本示例来说很好),它将错误限制在登录字段中:
注意:我直接将其输入到答案中,自从我使用 spring mvc 以来已经有一段时间了。
Assuming
You must limit the sf:errors tag by placing it in a s:bind tag. Here is an example (the path is probabaly not correct for your needs, but is fine for this example) that limits the errors to the login field:
Note: I typed this directly into the answer and it's been a while since I used spring mvc.