2016-07-28 1 views
1

У меня есть два представления Vaadin, и я хочу сделать процесс поиска с этими двумя видами. Мой первый взгляд содержит параметр TextField для поиска и Button для процесса поиска. То, что я хочу сделать, - как только пользователь нажмет кнопку поиска, я хочу отправить параметр поиска ко второму виду, и я вызову метод поиска из моих классов DAO, а затем отобразит результат поиска. Я новичок Vaadin, и у меня нет идеи, как это сделать, поэтому любая помощь будет оценена по достоинству.Vaadin 7 Pass Data Between Views

ответ

0

Я помню, как это делалось, передавая вызывающий вид на Subview, который вызывается. Попробуйте передать вызывающий объект в SubView в качестве параметра конструктора. Впоследствии в SubView вы можете добавить Listeners, которые реагируют на различные события, которые вы определяете.

Резюме: Создать Вид класса, который реализует/удлиняет View с вашей логикой и застройщиком, чтобы передать, что предыдущий вид (вызов Object)

F.E. В классе вызывающего:

ViewX x = new ViewX(this); 

в SubClass

previousView.getDao().save(...); 

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

1

Классический подход к передаче данных в представление осуществляется через параметры этого вида (это также позволяет сделать закладку этого поиска). Смотрите интерфейс 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