2017-01-20 2 views
0

Umleitung funktioniert nicht richtig. Ich konnte das Problem nicht verstehen, weil ich sehr neu im Frühling bin.Redirect funktioniert nicht richtig mit Feder mvc

Hier ist mein Controller, wenn ich mein Formular dann ("Schoolform") submitForm-Controller aufgerufen und es umleiten zu einem anderen Controller zu ('Formular') Formular-Controller, aber es geht auf ("Login") Login-Controller. Ich weiß nicht warum? Ich möchte Schulform umformen, um Controller zu bilden.

@RequestMapping(value = "/schoolform", method = RequestMethod.POST) 
    public String submitForm(@ModelAttribute("school")School school,Model model,HttpServletRequest request,HttpServletResponse resp) { 
     Authentication auth = SecurityContextHolder.getContext().getAuthentication(); 
     schoolService.update(school); 
      System.out.println("Form submitted finaly, No further changes can be made."); 
     return "redirect:/form.html"; 
    } 


@RequestMapping(value = "/form", method = RequestMethod.GET) 
    public String form(Model model,HttpServletRequest request) { 
     HttpSession session = request.getSession(true); 
     Authentication auth = SecurityContextHolder.getContext().getAuthentication(); 
     String name = auth.getName(); // get logged in username 
     System.out.println(name+"--------form page-----"); 

    } 

@RequestMapping(value = "/login", method = RequestMethod.GET) 
    public ModelAndView login(
      @RequestParam(value = "error", required = false) String error, 
      @RequestParam(value = "logout", required = false) String logout) { 
     logger.info("------------------LoginController ---------------"); 
     System.out.println("LoginController "); 
     ModelAndView model = new ModelAndView(); 
     if (error != null) { 
      model.addObject("error", "Invalid username and password!"); 
     } 

     if (logout != null) { 
      model.addObject("msg", "You've been logged out successfully."); 

     } 
     model.setViewName("login"); 
     return model; 

    } 
+0

Versuchen zurückzukehren 'Umleitung:/form', ohne '.html' Erweiterung –

+0

Es funktioniert nicht –

+0

nicht klar aus der Frage, was passiert. Welche URL trifft du auf Formular submit und es wird auf welche URL umgeleitet? und welches Verhalten du genau erreichen willst. –

Antwort

0

Ich denke, es funktioniert nicht, weil das Verfahren, in dem Sie eine URL zu umleiten versuchen, POST Anfragen akzeptiert. Sie können von POST Methoden Methoden nicht umleiten Sie haben eine Handler-Methode, die GET Methode akzeptiert und deren @RequestMapping den Wert akzeptiert, wo Sie versuchen, umzuleiten.

Im Grunde versucht die Methode submitForm, die nur POST-Anfragen akzeptiert, auf /form.html umzuleiten. Jetzt gibt es keine Methode in dem Controller, die /form.html akzeptiert, So, jetzt gotto hat eine Methode in der Controller-Klasse, dessen Abbildungswertes ist /form.html und akzeptiert GET Anfragen:

@RequestMapping(value = "/form.html", method = RequestMethod.GET) 
public String methodName(arg1 ..){ ... }