Я не знаю, как добавить новую страницу в проект Vaadin. В качестве эксперимента я переименовал одну страницу:
Я переименовал это:
@WebServlet(value = "/*", asyncSupported = true)
Для того, чтобы:
@WebServlet(value = "/blabla1", asyncSupported = true)
Однако я хочу новую страницу:
@WebServlet(value = "/blabla2", asyncSupported = true)
Unfortunatley, когда я переименовал первый, я получаю это сообщение в Chrome:
не удалось загрузить bootstrap javascript vaadin
Как добавить вторую веб-страницу, учитывая, что приведенное выше переименование примера кажется неудачным?
Ответ Андре не совсем корректен. В то время как простые приложения Vaadin могут вести себя как одностраничные приложения, в которых вы изменяете только содержание пользовательского интерфейса без изменения URL-адреса, приложения обычно более сложны и требуют другого подхода.
Приложения с одной страницей имеют несколько недостатков. Приложение обычно состоит из многих частей и состояний и обычно имеет свои собственные URL-адреса. Пользователь может перейти непосредственно к желаемому компоненту или состоянию, пометить его, чтобы посещать его непосредственно позже, использовать кнопки назад и froward и т.д.
В Ваадине это достигается сквозным навигатором. Каждый пользовательский интерфейс состоит из количества просмотров. Навигатор затем используется для навигации между представлениями. Каждый вид имеет свой уникальный URL-адрес, представленный фрагментом URL-адреса, поэтому пользователи могут перемещаться туда, открывать книгу и т.д.
Вы можете прочитать подробное руководство по навигации здесь в книге ваадина.
Обычные приложения Vaadin не имеют обычной навигации по веб-страницам, поскольку они обычно работают на одной странице, как это делают все приложения Ajax. Однако, как правило, приложения имеют разные представления, между которыми пользователь должен иметь возможность перемещаться. Навигатор в Ваадине можно использовать для большинства случаев навигации. Представления, управляемые навигатором, автоматически получают отдельный фрагмент URI, который можно использовать, чтобы иметь возможность добавлять закладки и их состояния, а также возвращаться и переходить в историю браузера.
Фрагментные URL-адреса действительно являются тем, что должно быть предпочтительным. Вы также можете использовать различные пользовательские интерфейсы Vaadin для разных URL-адресов (без фрагмента), предоставляя собственный пользовательский интерфейс.
И если вы используете либо Vaadin CDI, либо Vaadin Spring (и вы действительно должны использовать любой из них), вы также можете отображать пользовательские интерфейсы в разные URL-адреса просто путем предоставления последней части URL-адреса в качестве параметра аннотации.
Вот простой пример класса для использования "Навигатора" в Ваадине. Сначала создайте простой объект навигатора и используйте его в макете для отображения представлений.
public class NavigationtestUI extends UI {
@Override
public void init(VaadinRequest request) {
// Create Navigator, use the UI content layout to display the views
Navigator navigator = new Navigator(this, getContent());
// Add some Views
navigator.addView(MainView.NAME, new MainView()); // no fragment
// #count will be a new instance each time we navigate to it, counts:
navigator.addView(CountView.NAME, CountView.class);
// Navigate to view
navigator.navigate();
}
}