Java 使用SpringMVC的缺陷跟踪WebApp
这是我的spring mvc web应用程序的登录屏幕。我需要捕捉每一个可能的错误条件,并存储到数据库中。比如bug检测系统 例如,如果用户单击“登录”按钮而不填写表单,则错误条件不应保存在错误表中 如果不提供密码,则应保存未提供的密码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
@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);