Маршрутизация
С помощью маршрутизации можно контролировать формирование URL адресов страниц N2O.
Страницы в N2O открываются по следующему URL:
http://localhost:8080/#/[route]
, где route адрес N2O страницы.
Адреса страниц имеют иерархическую структуру.
Если страница вложенная (открыта через open-page),
то её адрес будет содержать адрес предыдущей страницы и добавочную часть.
Эта добавочная часть называется маршрутом и задаётся атрибутом route.
Маршрут должен начинаться со знака "/", например, route="/home".
Маршрут может содержать параметры пути, которые задаются через двоеточие,
например, /:master_id/detail.
Параметр пути указывает на значение в источниках данных.
Т.к. адреса N2O страниц формируются иерархически, то параметры пути будут сохраняться в адресах всех вложенных страниц. Следовательно, все параметры пути должны быть уникальными.
Маршрутизация в меню навигации
Начальные адреса страниц задаются в меню навигации приложения:
<application>
<header>
<nav>
<menu-item name="Главная">
<!-- Страница откроется по адресу
http://localhost:8080/#/home -->
<open-page page-id="home" route="/home"/>
</menu-item>
</nav>
</header>
</application>
Если route не задан, адресом по умолчанию будет id страницы.
Можно указать пустой маршрут route="/", в таком случае страница будет открываться по корневому адресу.
Корневой адрес регистрируется автоматически, если в структуре приложения задать атрибут welcome-page-id:
<application welcome-page-id="homePage">
...
</application>
Если в качестве welcome-page-id используется не index.page.xml, то в application.properties нужно добавить настройку с указанием домашней страницы n2o.homepage.id=homePage.
Маршрутизация в боковых панелях
Некоторые боковые панели могут появляться на определенных адресах приложения.
Эта возможность задается атрибутом path.
<sidebars>
<sidebar path="/home" title="Главная"/>
<sidebar path="/search" title="Поиск"/>
<sidebar path="/profile/*" title="Профиль"/>
<sidebar path="/store/**" title="Карточка магазина"/>
<sidebar path="/client/:person_id/**" title="Карточка клиента"/>
</sidebars>
Одна звездочка * определяет любой адрес до первого разделителя /.
Двойная звездочка ** определяет любые последующие адреса.
Параметры пути боковой панели
В адресе боковой панели можно задавать параметры пути через двоеточие.
<sidebar path="/client/:person_id/**" title="Карточка клиента">
...
</sidebar>
Параметры пути можно использовать в меню навигации боковой панели.
<sidebar path="/client/:person_id/**" title="Карточка клиента">
<nav>
<menu-item name="Документы">
<open-page page-id="docs" route="/client/:person_id/docs">
<params>
<path-param name="person_id" value=":person_id"/>
</params>
</open-page>
</menu-item>
</nav>
</sidebar>
Значение параметра пути боковой панели задается в атрибуте value через ведущее двоеточие value=":person_id".