2014-09-16 7 views
-1

Это экран входа в систему из моего веб-приложения spring mvc. Мне нужно поймать все возможные условия ошибки и сохранить базу данных.Отслеживание дефектов WebApp с использованием Spring mvc

например, если пользователь нажмет кнопку входа в систему без заполнения формы, условие ошибки ничего не должно сохранять в таблице ошибок.

, и если он не предоставит пароль, он должен сохранить пароль не прилагается.

enter image description here

@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); 
      } 
     } 

    } 

я попробовал код выше .... когда выше цикла запуска, если пользователь не вводя какой-либо из поля цикл сохранения любой из, если заявление 3 раза в базе данных.

Есть ли альтернативный способ сделать это.

ИСПЫТАНИЙ СЛУЧАИ

Username password type 
------------------------- 
    N   N  N  =NULL 
    Y   N  N  = WRONG PASS & TYPE 
    Y   Y  N  = WRONG TYPE. 
    N   Y  Y  = WRONG USER. 
    N   N  Y  = WRONG PASSWORD & TYPE. 
+0

Итак, с какими проблемами вы сталкиваетесь? – RE350

ответ

1

Try ниже строки кода в методе процесса в месте вашей цикл.

      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); 
+0

что-то не так с кодом, оно всегда сохраняет условие «неправильное имя пользователя». – boycod3

+0

upadated, условие было добавлено некорректно. – RE350

+0

такое же состояние. – boycod3

Смежные вопросы