Доступ к местным хранилищам из потока Ваадин

Мне нужно сохранить пользовательские настройки в локальном хранилище браузера. Как я могу получить доступ к localStorage с моего кода Vaadin?

Я пробовал с https://vaadin.com/directory/component/clientstorage, но похоже, что этот аддон поддерживает только версии vaadin 7-8, а я использую версию 12.


person Cayman    schedule 21.01.2019    source источник


Ответы (1)


Не существует серверного Java API для локального хранилища.
Но вы можете вызвать JavaScript на стороне клиента, чтобы работать с ним напрямую.
- Денис Анисимов, из github 'ticket'

Вам нужно будет узнать, как получить доступ к localStorage с помощью javascript. В сети есть много руководств, как это сделать, поэтому я не буду здесь объяснять.

Если вы не знаете, как добавить javascript в представление в Vaadin, а затем вызвать его, см. здесь и здесь

person kscherrer    schedule 23.01.2019
comment
Ну, я знаю, как получить доступ к локальному хранилищу из JS, но как я могу выполнить код JS из кода Java Vaadin и получить результат функции JS? Чтобы быть более точным, мне нужно получить настройки клиента из локального хранилища и скрыть или показать столбцы в моем компоненте Grid / - person Cayman; 23.01.2019
comment
У меня нет реального опыта использования JS в Vaadin. К сожалению, я не могу вам больше помочь, все, что я знаю, это то, что уже написано в ссылках в моем ответе. - person kscherrer; 23.01.2019
comment
Примерно так: UI.getCurrent().getPage().executeJs("return $0.get...", component.getElement()).then(result -> System.out.println(result.asNumber())); - person PAX; 02.11.2020