Java Spring形式的类级验证

Java Spring形式的类级验证,java,spring,forms,validation,spring-mvc,Java,Spring,Forms,Validation,Spring Mvc,我是Spring的新手,正在尝试用国际化的验证消息制作一个验证表单。 我正在使用JSR@Valid注释进行登录表单验证 我想执行以下3个验证: 检查用户名是否为空 检查密码是否为空 根据用户名检查密码是否有效 我能够执行所有这些验证,但问题是在我的UI上,我得到了第三次验证以及第一次和第二次验证 我只想在通过第一次和第二次验证时显示第三次验证 下面是我的jsp代码: 我的Bean代码 public class User implements Serializable { private st

我是Spring的新手,正在尝试用国际化的验证消息制作一个验证表单。 我正在使用JSR@Valid注释进行登录表单验证

我想执行以下3个验证:

  • 检查用户名是否为空
  • 检查密码是否为空
  • 根据用户名检查密码是否有效
  • 我能够执行所有这些验证,但问题是在我的UI上,我得到了第三次验证以及第一次和第二次验证

    我只想在通过第一次和第二次验证时显示第三次验证

    下面是我的jsp代码:

    我的Bean代码

    public class User implements Serializable {
    
    private static final long serialVersionUID = -7788619177798333712L;
    
    @NotEmpty(message = "Please enter your username.")
    private String username;
    
    @NotEmpty(message = "Please enter your password.")
    private String password;
    
    @AssertTrue(message= "Invalid username or password")
    boolean authenticated;
    

    如果有人能在这个问题上指导我,这将是一个很大的帮助。

    您可以使用class-leven约束,而不是单独的字段进行验证

    看到和

    只需在实现Constraint或ConstraintValidator接口的validator类中引入您自己的注释来检查字段组合


    然后将注释添加到表单类。

    谢谢StanislavL的友好回复。我检查了链接。我的问题是,我需要在UI中一次显示验证1或2(不是3)或仅显示验证3(不是1和2)。
    @RequestMapping(value = "/login", method = {RequestMethod.POST, RequestMethod.GET})
    public String authenticate(@ModelAttribute("user") @Valid User user,BindingResult result, ModelMap model, Locale locale, SessionStatus status, RedirectAttributes redirectAttrs, HttpServletRequest req){       
    
        if(result.hasErrors()){
            return "home";
        }
    
    //code to validate password against username
    }
    
    public class User implements Serializable {
    
    private static final long serialVersionUID = -7788619177798333712L;
    
    @NotEmpty(message = "Please enter your username.")
    private String username;
    
    @NotEmpty(message = "Please enter your password.")
    private String password;
    
    @AssertTrue(message= "Invalid username or password")
    boolean authenticated;