2014-12-14 1 views
0

Я использую Spring MVC, и мне интересно, можно ли изменить URL-адрес при возврате ModelAndView (представление находится в папке WEB-INF, поэтому перенаправление на него не работает) с контроллера? Я имею в виду, когда я возвращаю его, URL-адрес является предыдущим, и его очевидно, потому что диспетчер работает, а не перенаправляется.Можно ли изменить URL-адрес при возврате ModelAndView из WEB-INF?

@RequestMapping(value = "/login", method = RequestMethod.POST) 
    public ModelAndView authenticate(@RequestParam("login") String login, @RequestParam("password") String password) { 
     ModelAndView modelAndView = new ModelAndView(); 
     User user = userDao.getUserByLogin(login); 
     if (user != null && user.getPassword().equals(password)) { 
      modelAndView.addObject("user", user); 
      modelAndView.setViewName("home"); 
     } 
     return modelAndView; 
    } 

Так моя home модель находится в папке WEB-INF, так return redirect:/home не будет работать на него. Да, я могу перенаправить его с return home, но в этом случае URL-адрес не изменится.

ответ

2

Используйте redirect:/url другим способом и верните представление.

Когда перенаправление атрибутов модели недоступно в новом методе, чтобы получить это в перенаправленном методе, установите его в RedirectFlashAttributes.

Надеюсь, это поможет.

+0

Как я уже сказал, мое представление находится в папке WEB-INF, поэтому «перенаправление:/url» не будет работать для него, так как его невозможно получить с помощью запроса GET. – user2620644

+0

Когда-либо его взгляд на него может быть доступен. Если вы можете опубликовать свой код. – sridhar

+0

Досягаемо, просто вернув представление, а не перенаправляя. НО! Если я верну его имя, он перенаправляет его без изменений URL. – user2620644

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