Как получить параметр запроса весной с помощью Vaadin?

Я пытаюсь получить параметр запроса со своего URL-адреса. URL-адрес выглядит так:

http://localhost:1001/login?continue=/teams

Когда я пытаюсь получить параметр continue, я получаю null.

request.getParameter("continue")

возвращает null, поэтому я попытался прочитать всю строку запроса, но

request.getQueryString()

возвращает только это:

v-r=uidl&v-uiId=1

Как я могу получить доступ к параметрам моего запроса?

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

Ответы 3

Spring дает вам возможность использовать @RequestMapping и @RequestParam для их получения.

пример: http: // локальный: 8080 / пружинный отдых / ex / бары? id = 100

    @RequestMapping(value = "/ex/bars", method = GET)
@ResponseBody
public String getBarBySimplePathWithRequestParam(
  @RequestParam("id") long id) {
    return "Get a specific Bar with id = " + id;
}

В вашем случае вам нужно будет добавить аннотацию @RequestParam ("continue").

Вы можете пока игнорировать аннотацию @RequestBody, но убедитесь, что ваш контроллер помечен @RequestMapping, а в качестве аргумента вашего метода у вас есть @RequestParam ..

Я взял этот пример на следующем сайте: https://www.baeldung.com/spring-requestmapping

В нем есть и другие интересные вещи

У меня проблема в том, что мне нужно самому вызвать метод из-за Ваадина. Я не могу использовать RequestMapping. Есть ли еще одна возможность добиться этого?

Jnt0r 06.12.2018 18:47

Вы можете использовать Spring MVC с Vaadin, однако, если в вашем конкретном случае вы не можете, я обнаружил, что есть некоторые аннотации, которые вы можете использовать (из коробки vaadin), я делюсь ссылкой в ​​этом комментарии: vaadin.com/directory/component/url-parameter-mapping

OEH 06.12.2018 22:21
Ответ принят как подходящий

Если вы не хотите использовать Spring MVC, вы можете обратиться к этому примеру:

https://vaadin.com/directory/component/url-parameter-mapping

Есть несколько готовых аннотаций на стороне Vaadin, которые могут быть полезны для ваших целей.

Похоже, вы можете использовать @UrlParameter как на уровне метода, так и как член класса. так что вы можете иметь более широкий диапазон, если этого требует ваше приложение.

v-r=uidl&v-uiId=1 указывает, что запрос, который вы просматриваете, является внутренним запросом XHR, отправленным уровнем автоматической связи Vaadin.

См. https://vaadin.com/docs/v12/flow/routing/tutorial-router-url-parameters.html#query-parameters для получения подробной информации о том, как получить доступ к параметрам запроса по URL-адресу, который отображается в адресной строке браузера.

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