Передавайте данные между разными html-страницами и контроллерами весной

Привет, я новичок в Spring, и у меня проблемы с передачей данных между двумя страницами с использованием двух разных контроллеров. Я хотел бы знать, как я могу справиться с этой ситуацией. В моем index.html у меня есть кнопка, которая должна перенаправить меня на новую страницу, передающую некоторые данные. Когда я нажимаю кнопку, она перенаправляет меня на страницу шага 2, но мне не нужны объекты. Как я могу это решить? Правилен ли метод GET? Должен ли я использовать форму только для передачи некоторых данных между страницами и контроллерами? Ниже то, что у меня есть.

Индекс.html

<form th:action = "@{/step2}" method = "GET">
    <input type = "hidden" th:value = "${mapSelectedServices}" name = "mapSelectedServices"/>
    <input type = "hidden" th:value = "${user}" name = "loggedUser"/>
    <div class = "form-group d-flex align-items-center justify-content-between">
        <button type = "submit" class = "btn btn-danger btn-rounded ml-auto" >SEE PRICES
            <i class = "fas fa-long-arrow-alt-right ml-2"></i>
        </button>
    </div>
</form>

Step2Контроллер

@RequestMapping(value = "step2", method = RequestMethod.GET)
public ModelAndView step2(ModelAndView modelAndView, @ModelAttribute("user") User user, 
        @ModelAttribute("mapSelectedServices") HashMap<String,List<ServiceOffered>> mapSelectedServices, 
        BindingResult bindingResult){
    modelAndView.addObject("user", user);
    modelAndView.addObject("mapSelectedServices", mapSelectedServices);
    modelAndView.setViewName("step2");
    return modelAndView;
}

Извините за все вопросы, но я новичок в весенней разработке.

эй, я думаю, сначала вы прочитали этот учебник. в этом руководстве вы знаете, в каком методе используется tutorialspoint.com/http/http_methods.htm

Vipin Pandey 20.02.2019 10:17
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
1
558
1

Ответы 1

HTML-страница:

<form th:action = "@{/step2}" method = "POST">
    <input type = "hidden" th:value = "${mapSelectedServices}" name = "mapSelectedServices"/>
    <input type = "hidden" th:value = "${user}" name = "loggedUser"/>
    <div class = "form-group d-flex align-items-center justify-content-between">
        <button type = "submit" class = "btn btn-danger btn-rounded ml-auto" >SEE PRICES
            <i class = "fas fa-long-arrow-alt-right ml-2"></i>
        </button>
    </div>
</form>

Метод контроллера:

     public ModelAndView goToPgae2(@ModelAttribute ModelClass aClass)
        {

ModelAndView mv=new ModelAndView("SecondHtlmPageName");//setting view name here
mv.addAttribute("aClass",aClass);
        return mv;
        }

Класс модели с конкретными переменными, передаваемыми с одной страницы на другую:

  class ModelClass {

    public Stirng mapSelectedServices; //use appropriate data type.
    public String loggedUser;

    //create getters and setters
    }

Вторая страница

<div>${aClass.loggedUser}</div>

ВЫПОЛНЕНО.

Таким образом, вы можете перейти на вторую страницу. И если вы хотите перенаправить на вторую страницу и там должны быть доступны атрибуты модели, вам нужно использовать flashattribute.

Я пытался, но получаю сообщение об ошибке преобразования между строкой и картой. Это ошибка: Cannot convert value of type 'java.lang.String' to required type 'java.util.Map' for property 'mapSelectedServices': no matching editors or conversion strategy found

andrea 20.02.2019 14:05

@andrea да, вот почему я упомянул в коде об использовании соответствующего типа данных.

vipin cp 20.02.2019 14:52

Как вы написали, я создаю новый класс с атрибутом Map as. Разве карта не является подходящим типом данных?

andrea 20.02.2019 14:57

Другие вопросы по теме