Spring MVC Передать данные в другой контроллер

207
18 апреля 2018, 09:08

Есть часть кода в UserController, которая обрабатывает данные из формы:

@RequestMapping(value = "/login", method = RequestMethod.POST)
public String loginUser(final HttpServletRequest request, final Model model) 
{   
    Map<String, Object> parms = new HashMap<String, Object>();
    final String login = request.getParameter("login");     
    String password = request.getParameter("password");
    final User user = new User();
    user.setPassword(bCryptPasswordEncoder.encode("001"));
    logger.info(user.getPassword());
    if (bCryptPasswordEncoder.matches(password, user.getPassword())) {
        parms.put("login", login);
        logger.info(parms);
        User user2 = userService.login(parms);
        logger.info(JSON.toJSON(user2));
        model.addAttribute("user", user2);  
    }
    return "redirect:/book/books";
}

В BookController:

@RequestMapping(value = "/books", method = RequestMethod.GET)
public String books(final HttpServletRequest request, final Model model) {
    List<Book> books;
    if (request.getParameter("name") != null || request.getParameter("publishing_house") != null || request.getParameter("the_year_of_publishing") != null) {
        Map<String, Object> parms = new HashMap<String, Object>();
        final String name = request.getParameter("name");
        final String publishingHouse = request.getParameter("publishingHouse");
        final int theYearOfPublishing = Integer.parseInt(request.getParameter("theYearOfPublishing"));
        parms.put("name", name);
        parms.put("publishingHouse", publishingHouse);
        parms.put("theYearOfPublishing", theYearOfPublishing);
        logger.info(parms);
        books = bookService.booksBySearch(parms);
    } else {
        books = bookService.getAll();
    }
    model.addAttribute("books", books);
    logger.debug("running in BookController.java -> books()");
    logger.info(JSON.toJSON(request.getRequestURI()));
    logger.info(JSON.toJSON(books));
    return "/book/list.jsp";
}

Как получить в BookController переменную user (model.addAttribute("user", user2))?

Answer 1
public String loginUser(HttpServletRequest request, RedirectAttributes redirectAttributes) {
    ...
    redirectAttributes.addFlashAttribute("user", user2);
    return "redirect:/book/books";
}
public String books(@ModelAttribute User user, HttpServletRequest request, Model model) {
    ...
}
READ ALSO
Rest API - Internal Server Error

Rest API - Internal Server Error

Веб-сервис был разработан в среде IntelliJ IDEA на win7Использовался сервер GlassFish 4

212
AlertDialog криво отображается с API &lt; 21

AlertDialog криво отображается с API < 21

У меня есть AlertDialog, в новых андроидах он отображается нормально, а в старых - гг

172
Проблемы с ObjectInputStream\ObjectOutputStream, считывание и запись объектов в файл

Проблемы с ObjectInputStream\ObjectOutputStream, считывание и запись объектов в файл

ЗдравствуйтеКласс(IdentificationUser) производит идентификацию пользователя(User),приложение сетевой чат

174