У меня есть два представления Vaadin, и я хочу сделать процесс поиска с этими двумя видами. Мой первый взгляд содержит параметр TextField
для поиска и Button
для процесса поиска. То, что я хочу сделать, - как только пользователь нажмет кнопку поиска, я хочу отправить параметр поиска ко второму виду, и я вызову метод поиска из моих классов DAO, а затем отобразит результат поиска. Я новичок Vaadin, и у меня нет идеи, как это сделать, поэтому любая помощь будет оценена по достоинству.Vaadin 7 Pass Data Between Views
ответ
Я помню, как это делалось, передавая вызывающий вид на Subview, который вызывается. Попробуйте передать вызывающий объект в SubView в качестве параметра конструктора. Впоследствии в SubView вы можете добавить Listeners, которые реагируют на различные события, которые вы определяете.
Резюме: Создать Вид класса, который реализует/удлиняет View с вашей логикой и застройщиком, чтобы передать, что предыдущий вид (вызов Object)
F.E. В классе вызывающего:
ViewX x = new ViewX(this);
в SubClass
previousView.getDao().save(...);
Если я бы вспомнить методы и т.д. я бы написал лучший пример, как я работал года назад с Vaadin6 ...
Классический подход к передаче данных в представление осуществляется через параметры этого вида (это также позволяет сделать закладку этого поиска). Смотрите интерфейс View:
void enter(ViewChangeListener.ViewChangeEvent event)
Это мнение переходите к. Этот метод всегда вызывается перед отображением на экране. event.getParameters() может содержать дополнительные параметры, относящиеся к представлению.
Вы можете отправить эти параметры из исходного вида через ваш навигатор. Например.
navigator.navigateTo("search/searchterm")
// `search` is your view name, `searchterm` is the passed param
Смотрите пример в Handling URI Fragment Path of the Book of Vaadin