2017-01-20 3 views
0

Перенаправление не работает должным образом. Я не мог понять проблему, потому что я очень новый, чтобы весной.Перенаправление не работает должным образом с использованием пружины mvc

Здесь мой контроллер, когда я отправляю свою форму, затем («schoolform»), вызывается диспетчер submitForm и перенаправляется на другой контроллер в контроллер формы ('form'), но он переходит в (login) контроллер входа. Я не знаю почему? Я хочу перенаправить школьную форму, чтобы сформировать контроллер.

@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

Пытаться вернуть 'Перенаправление:/form', без расширения .html' –

+0

Не работает –

+0

Непонятно из вопроса, что происходит. который url вы нажимаете на форму submit и перенаправляет на какой URL? и какое поведение вы точно хотите достичь. –

ответ

0

Я думаю, что это не работает, потому что метод, в котором вы пытаетесь перенаправить к URL, принимает POST запросы. Вы не можете перенаправить из POST методов UNLESS у вас есть метод обработчика, который принимает метод GET и чье @RequestMapping принимает значение, в котором вы пытаетесь перенаправить.

Так что в основном метод submitForm, который принимает только запросы POST, пытается перенаправить на /form.html. Теперь, не существует никакого метода в контроллере, который принимает /form.html, так что теперь вы Готто есть метод в классе контроллера, чье отображение значение /form.html и принимает GET запросов:

@RequestMapping(value = "/form.html", method = RequestMethod.GET) 
public String methodName(arg1 ..){ ... } 
Смежные вопросы