2012-02-22 5 views
1

Я очень растерялся, используя Spring MVC для перенаправления.Перенаправление на новый URL весной 3.1 MVC?

Я хочу перенаправить URL-адрес, но адресная строка в brwser не обновляется.

Во-первых, я отправляю форму контроллеру, и в этом контроллере я использую префикс «redirect:» для нового контроллера (он работает), но адресная строка все еще ссылается на предыдущий URL.

Вот мой код ТЭН контроллер для приема запроса на сообщение:

@RequestMapping(method=RequestMethod.POST) 
    public ModelAndView processSubmit(LoginFormBean formBean, BindingResult result, 
    Model model) { 
     System.out.println(formBean.getUsername()); 
    System.out.println(formBean.getPassword()); 
    return new ModelAndView("redirect:/index"); 
} 

Для контроллера для перенаправления:

@Controller 
@RequestMapping("/index") 
public class IndexController { 

    @RequestMapping(method=RequestMethod.GET) 
    public String show() { 
     return "index"; 
    } 
} 

Перед форма размещена форма, URL является «HTTP : // localhost: 7001/mobi " после публикации и перенаправления URL не является" http: // localhost: 7001/mobi/index ", но все же" http: // localhost: 7001/mobi "

Есть ли какой-либо vi в моем коде, который нужно исправить? Может ли сообщество помочь мне в реализации этого правильно?

+1

Не те ли две ссылки, которые вы упоминаете, по существу, то же самое? В качестве теста попробуйте перенаправить на/sthElse. Это должно сработать. – Stealth

ответ

0

Единственный видимый ответ, который я могу предположить, исходя из вашего кода, состоит в том, что он сомнительно, что у вас есть modelandview, это перенаправление на индекс. Вы можете в значительной степени отбросить синтаксис modelandview с помощью Spring 3 и просто вернуть нужные вам страницы. Вот пример из моего собственного кода, где я также получить отправленную форму и перенаправлять на другой контроллер:

@RequestMapping(value = REQUEST_MAP, method = RequestMethod.POST) 
public String processForm(HttpServletRequest req, HttpServletResponse res, @ModelAttribute("myForm") myForm form, BindingResult result) 
     throws Exception { 
    //super cool form handling logic here! 
    return "redirect:/anotherControllerMappedURI"; 
} 

я мог бы также просто возвращал строку, чтобы вернуться на странице просмотра непосредственно. Например, верните «индекс», чтобы отправить пользователя на страницу index.jsp. Затем вы можете использовать метатег, чтобы при необходимости перенаправить html.

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