Передача переменной из JSP в другой

Я хочу передать строку из одного JSP с именем list.jsp в другой с именем details.jsp

У меня есть «кнопка» в list.jsp, как показано ниже:

  <a class = "more-info-title" href = "details.jsp?address=<%=resultSet.getString("address")%>">MORE INFO ></a>

Теперь в details.jsp я хочу получить переменную с именем 'address', поэтому я делаю следующее:

  String address=request.getParameter("address");

Оказывается, это не работает. Когда я нажимаю на кнопку, я получаю следующее:

Передача переменной из JSP в другой

Также вот часть моего контроллера:

@RequestMapping("details")
public ModelAndView helloDetails() {
    final ModelAndView mav = new ModelAndView("details");
    return mav;
}


@RequestMapping("list")
public ModelAndView helloList() {
    final ModelAndView mav = new ModelAndView("list");
    return mav;
}

как заканчивается URL-адрес details.jsp?

Bagus Tesa 09.09.2018 03:12

Примерно так, если адрес "Сумасшедшая улица 1414" localhost: 8080 / null / hello / details.jsp? Address = Crazy% 20Street‌% 201414

Flama 09.09.2018 03:13

что такое null в URL? куда ты положил request.getParameter("address");?

benjamin c 09.09.2018 06:24

хм, это заставило меня задуматься, похож ли list на localhost:8080/null/hello/list.jsp? потому что ошибка «не найден» (404) появляется, когда назначенный маршрут не сопоставлен ни с каким контроллером или статическими ресурсами. если нет, вероятно, как подозревал Бенджамин, часть null могла быть откуда-то еще, что вызывает проблему ... и могу ли я уточнить у вас, построена ли она на весна? если да, вам нужно правильно пометить это.

Bagus Tesa 09.09.2018 06:59

@BagusTesa да URL-адрес списка выглядит так, как вы сказали. Проблема может быть связана с пружиной (да, я использую весну).

Flama 09.09.2018 17:25

@benjaminc Я помещаю <% String address=request.getParameter("address"); %> в начало файла details.jsp сразу после импорта.

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

Ответы 1

Ответ принят как подходящий

Я не уверен, откуда вы получаете адрес в списке JSP. Если вы маршрутизируете свой запрос через контроллер, вам необходимо снова добавить параметр из запроса в объект ModelAndView, чтобы получить к нему доступ во вновь созданном файле JSP.

 <a class = "more-info-title" href = "details?address=<%=resultSet.getString("address")%>">MORE INFO ></a>

Для маршрутизации вашего запроса от контроллера вам необходимо изменить значение «href», как указано выше (оно должно быть таким же, как вы упомянули @RequestMapping в контроллере).

@RequestMapping("details")
public ModelAndView helloDetails(HttpServletRequest request) {
    final ModelAndView mav = new ModelAndView("details");
    mav.addObject("address", getParameter("address"));
    return mav;
}


@RequestMapping("list")
public ModelAndView helloList() {
    final ModelAndView mav = new ModelAndView("list");
    return mav;
}

Я не могу его скомпилировать, так как getParameter не определен для контроллера

Flama 09.09.2018 23:05

Мое плохое, это был request.getParameter ("адрес"). Спасибо за ваше время, это сработало.

Flama 09.09.2018 23:09

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