Java 使用SpringMVC的缺陷跟踪WebApp

Java 使用SpringMVC的缺陷跟踪WebApp,java,spring,spring-mvc,defects,Java,Spring,Spring Mvc,Defects,这是我的spring mvc web应用程序的登录屏幕。我需要捕捉每一个可能的错误条件,并存储到数据库中。比如bug检测系统 例如,如果用户单击“登录”按钮而不填写表单,则错误条件不应保存在错误表中 如果不提供密码,则应保存未提供的密码 @RequestMapping(value = { "/do-login" }, method = RequestMethod.POST) public String login(@ModelAttribute(value = "user") User

这是我的spring mvc web应用程序的登录屏幕。我需要捕捉每一个可能的错误条件,并存储到数据库中。比如bug检测系统

例如,如果用户单击“登录”按钮而不填写表单,则错误条件不应保存在错误表中

如果不提供密码,则应保存未提供的密码

@RequestMapping(value = { "/do-login" }, method = RequestMethod.POST)
    public String login(@ModelAttribute(value = "user") User user) {
        process(user);
        return "success";
    }

    public void process(User user) {

        List<User> users = userService.findAll();
        for (User u : users) {
            if (!u.getUserName().equals(user.getUserName())) {
                IssueDetail detail = new IssueDetail();
                detail.setSummary("user name");
                detail.setDescription("wrong user name entered");
                issueDetailService.save(detail);
            } else if (!u.getPassword().equals(user.getPassword())) {
                IssueDetail detail = new IssueDetail();
                detail.setSummary("password");
                detail.setDescription("wrong password entered");
                issueDetailService.save(detail);
            } else if (!u.getUserType().equalsIgnoreCase(user.getUserType())) {
                IssueDetail detail = new IssueDetail();
                detail.setSummary("user type");
                detail.setDescription("wrong user type entered");
                issueDetailService.save(detail);
            }
        }

    }


请尝试在代码行下面的流程方法内部代替for循环

                            List<User> users = userService.findAll();
            boolean isUserNameExist = false;
            boolean isPasswordExist = false;
            boolean isUserTypeExist = false;
            for (User u : users) {
                if (u.getUserName().equals(user.getUserName())) {
                    isUserNameExist = true;
                    break;
                } 
            }

            for (User u : users) {
               if (u.getPassword().equals(user.getPassword())) {
                    isPasswordExist =true;
                    break;
               } 
            }
            for (User u : users) {
                if (u.getUserType().equalsIgnoreCase(user.getUserType())) {
                    isUserTypeExist = true;
                    break;
                }
            }
            IssueDetail detail = new IssueDetail();
            if(!isUserNameExist){
                detail.setSummary("user name");
                detail.setDescription("wrong user name entered");
            }
            if(!isPasswordExist){
                detail.setSummary(detail.getSummary()+" password");
                detail.setDescription(detail.getDescription()+" wrong password entered");
            }
            if(!isUserTypeExist){
                detail.setSummary(detail.getSummary() +" user type");
                detail.setDescription(detail.getDescription() +" wrong user type entered");
            }
            issueDetailService.save(detail);
List users=userService.findAll();
布尔值isUserNameExist=false;
布尔值isPasswordExist=false;
布尔值isUserTypeExist=false;
for(用户u:用户){
如果(u.getUserName().equals(user.getUserName())){
isUserNameExist=true;
打破
} 
}
for(用户u:用户){
如果(u.getPassword().equals(user.getPassword())){
isPasswordExist=true;
打破
} 
}
for(用户u:用户){
if(u.getUserType().equalsIgnoreCase(user.getUserType())){
isUserTypeExist=true;
打破
}
}
IssueDetail=新的IssueDetail();
如果(!isUserName存在){
详细信息。设置摘要(“用户名”);
detail.setDescription(“输入的用户名错误”);
}
如果(!isPasswordExist){
detail.setSummary(detail.getSummary()+“密码”);
detail.setDescription(detail.getDescription()+“输入了错误的密码”);
}
如果(!isUserTypeExist){
detail.setSummary(detail.getSummary()+“用户类型”);
detail.setDescription(detail.getDescription()+“输入了错误的用户类型”);
}
IssuedDetailService.save(详细信息);

那么你面临什么问题呢?代码有问题,它总是保存“输入的用户名错误”条件。升级后,条件添加不正确。你能提供你的测试用例吗?我是指你想要实现的输入和期望输出?更新了问题。让我们来看看。
                            List<User> users = userService.findAll();
            boolean isUserNameExist = false;
            boolean isPasswordExist = false;
            boolean isUserTypeExist = false;
            for (User u : users) {
                if (u.getUserName().equals(user.getUserName())) {
                    isUserNameExist = true;
                    break;
                } 
            }

            for (User u : users) {
               if (u.getPassword().equals(user.getPassword())) {
                    isPasswordExist =true;
                    break;
               } 
            }
            for (User u : users) {
                if (u.getUserType().equalsIgnoreCase(user.getUserType())) {
                    isUserTypeExist = true;
                    break;
                }
            }
            IssueDetail detail = new IssueDetail();
            if(!isUserNameExist){
                detail.setSummary("user name");
                detail.setDescription("wrong user name entered");
            }
            if(!isPasswordExist){
                detail.setSummary(detail.getSummary()+" password");
                detail.setDescription(detail.getDescription()+" wrong password entered");
            }
            if(!isUserTypeExist){
                detail.setSummary(detail.getSummary() +" user type");
                detail.setDescription(detail.getDescription() +" wrong user type entered");
            }
            issueDetailService.save(detail);