Не удается передать несколько параметров пути в Vaadin, используя RouterLink - PullRequest
0 голосов
/ 07 апреля 2020

Я новичок в Vaadin и пытаюсь понять, как сделать View, чтобы получить несколько параметров из URL. Например,

http://www.some.com/book/18/page/41

Числа 18 и 41 являются параметрами.

Я обнаружил, что могу реализовать HasUrlParameter<T>, а затем использовать метод setParameter, но его можно использовать только для один параметр.

Ответы [ 2 ]

1 голос
/ 08 апреля 2020

Нет встроенной поддержки наличия нескольких параметров для Java представлений в Vaadin. Что вы можете сделать, так это пометить параметр с помощью @WildcardParameter, чтобы несколько сегментов пути можно было объединить в один параметр. После этого вам придется вручную управлять содержимым этого значения - объединять строки при генерации URL-адресов и разбирать строки в setParameter.

. Поддержка нескольких параметров уже работает, но работа еще не завершена. , Пока не ясно, какая будущая версия Vaadin получит эту функцию, но сейчас я предполагаю, что это будет либо версия 14.3, либо 14.4.

1 голос
/ 08 апреля 2020

Используете ли вы @WildcardParameter в вашем setParameter методе? Параметры URL-адреса с подстановочными символами

Если предположить, что greet (book в вашем случае) - это маршрут, тогда приведенный ниже код устанавливает 18\page\41. Поскольку это строка, вам нужно будет проанализировать ее и извлечь нужные значения, но значение есть.

@Route("greet")
public class WildcardGreeting extends Div
        implements HasUrlParameter<String> {

        @Override
        public void setParameter(BeforeEvent event,
                @WildcardParameter String parameter) {
                if (parameter.isEmpty()) {
                        setText("Welcome anonymous.");
                } else {
                        setText(String.format(
                                "Handling parameter %s.",
                                parameter));
                }
        }
}

PS Не относится к вопросу, но, глядя на ваш URL, могут быть параметры запроса Вам лучше подойдет Параметры запроса ?

...