2017-04-03 5 views
1

ich eine Login-Seite mit Spring MVC + Mybatis, die Regler sind wie folgt tun wollte:Spring MVC Umleitung fehlgeschlagen

@Controller 
public class LoginController { 
private final UserService userService; 

@Autowired 
public LoginController(@Qualifier("userService") UserService userService) { 
    this.userService = userService; 
} 

@RequestMapping(value = "/login") 
public ModelAndView Login(String username, String password, 
          ModelAndView mv, HttpSession session) { 
    User user = userService.login(username, password); 

    // **This is where problems occured** 
    if (user != null) { 
     session.setAttribute("user", user); 
     mv.setView(new RedirectView("/main")); 
    } else { 
     mv.addObject("message","Login failed."); 
     mv.setViewName("loginForm"); 
    } 
    return mv; // with correct value, but responses 404 error 
} 

@RequestMapping(value = "/loginForm") 
public String LoginForm() { 
    return "loginForm"; 
} 

@RequestMapping(value = "/main") 
public String Main(Model model) { 
    return "main"; 
} 
} 

Ich habe zwei jsp Dateien:

/WEB-INF/jsp/loginForm.jsp 
/WEB-INF/jsp/main.jsp 

Ob ich die einreichen Anmeldeformular korrekt oder nicht, es ist ein Fehler 404:

HTTP Status 404 - /WEB-INF/jsp/login.jsp 

im Debug-Modus ausgeführt wird, die mv wurde mit "/ main" korrekt zurückgegeben, so dass es mich verwirrt hat.

Code unten funktioniert, aber ich kann Fehlermeldung nicht mehr anzeigen.

@RequestMapping(value = "/login") 
public String Login(String username, String password, HttpSession session) { 
    User user = userService.login(username, password); 
    if (user != null) { 
     session.setAttribute("user", user); 
     return "redirect:/main"; 
    } else { 
     session.setAttribute("message","Login failed"); 
     return "redirect:/loginForm"; 
    } 
} 
+0

Welche Art von Spring-Konfiguration werden Sie verwenden, XML oder Java-basierte? – NotionBit

+0

Gelöst, danke, der Grund ist ein _null_ Parameter. – sczhg

Antwort

1

ich habe gleiches Problem Gesicht, aber es ist Hilfe für mich

ModelAndView model = new ModelAndView(); 
if (user != null) { 
     session.setAttribute("user", user); 
     model = new ModelAndView("/main"); 
    } else { 
     mv.addObject("message","Login failed."); 
     model = new ModelAndView("/loginForm"); 
    } 
return model; 
+0

Dies funktioniert, ich verstehe, der Parameter ** mv ** in meinem Code ist _null_ – sczhg

Verwandte Themen