Controller:
@Controller public class LoginController { private UserRepository userRepository; @PostMapping("/login") public String login(@ModelAttribute("login" Login login)) { User user = userRepository.searchByName(login.getUsername()); if (user == null) throw new ApplicationException("User not found"); return "login"; } // this method only active for ApplicationException @ExceptionHandler(ApplicationException.class) public String handleException() { return "error" } }
Repository:
@Repository public interface UserRepository extends CrudRepository<User, Integer> { @Query("select u from User u where u.username= :name") public User searchByName(@Param("name") String username); }
ApplicationException:
public class ApplicationException extends RuntimeException { public ApplicationException(String message){ super(message); } }