как получить объект из перенаправленного вида? - PullRequest
0 голосов
/ 01 декабря 2010

Я сейчас использую Spring MVC, Java и аннотации.

@RequestMapping(value = "/submitTask", method = RequestMethod.POST)
public ModelAndView submitTask(HttpSession session, HttpServletRequest request) {
        Map<String, Object> map = new HashMap<String, Object>();
        ModelAndView model = new ModelAndView(new RedirectView("home.html"));
        map.put("email", request.getParameter("email"));
        map.put("task",request.getParameter("task"));
        map.put("error", request.getParameter("error"));
        model.addObject("map", map);
        return model;
}

@RequestMapping("/home")
 public ModelAndView home(HttpSession session, HttpServletRequest request) {
    ModelAndView model = new ModelAndView("home");
    model.addObject("map", request.getParameter("map"));
    return model;
 }

Мне кажется, что я не получаю значение "map" через "request.getParameter (" map ")", когда я перенаправил свойпосмотреть на home.html.как я могу быть в состоянии получить это.Спасибо

Ответы [ 3 ]

1 голос
/ 01 декабря 2010

Использование RedirectView заставляет браузер выдавать новый запрос, поэтому исходный запрос теряется.

Вам нужно что-то вроде области флеш-памяти или области диалога.Я не знаю какой-либо их реализации, но проверьте результаты Google .

Использование Spring Webflow - это способ обработки бесед, но он слишком сложен для простой задачи.1008 *

В качестве обходного пути вы можете использовать сеанс, а затем сразу же очистить его (что, по сути, и будет делать flash-scope)

1 голос
/ 01 декабря 2010

Я верю, что проблема в том, что запрос HttpServletRequest, переданный методу home, содержит параметр «map.email», «map.task», «map.error», но не «map».

0 голосов
/ 20 января 2014

Изменение

new RedirectView("home.html")

до

"forward:home.html"

При перенаправлении будут сброшены все данные на стороне сервера, кроме атрибута сеанса или компонента, поскольку будет новый запрос, сгенерированный на стороне клиента. Forward перенесет все в другой «метод» - атрибуты запроса не будут изменены, поэтому они будут доступны.

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