Перенаправление на новый URL весной 3.1 MVC? - PullRequest
1 голос
/ 22 февраля 2012

Я очень запутался, используя Spring Web 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"

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

1 Ответ

0 голосов
/ 26 октября 2012

Единственный видимый ответ, который я могу догадаться на основе вашего кода, состоит в том, что сомнительно, что у вас есть 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», чтобы отправить пользователя на страницу index.jsp.Затем вы можете использовать метатег для перенаправления html при необходимости.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...