Java: Веб-технологии
2026-02-26 20:17 Diff

Шаблоны сайта содержат множество внутренних ссылок, которые ведут на меню, кнопки и формы. До сих пор мы формировали эти ссылки прямо в тех местах, где они нам нужны:

Так же ссылки строятся и в обработчиках — например, при редиректах:

В примерах выше мы формируем ссылку именно там, где хотим ее использовать. У этого способа есть свои минусы. Для примера представим, что мы решили изменить маршрут с /courses/{id} на /c/{id}. В этом случае нам придется пройтись по всем шаблонам и вручную заменить маршрут во всех ссылках. Это долго и неудобно.

А что будет, если мы решим удалить маршрут /courses/{id}? Тогда сайт продолжит работать, но все ссылки с удаленным маршрутом начнут вести на страницу 404. Не факт, что мы сразу заметим и исправим эту проблему. Будет лучше, если страницы с такими ссылками начнут выдавать ошибки. Тогда выявить подобные ссылки станет крайне просто. Для решения этой задачи придумали именованные маршруты, которые мы обсудим в этом уроке.

Как работают именованные маршруты

Каждому именованному маршруту фреймворка присваивается имя, которое можно использовать при построении конкретной ссылки. В Javalin такой механизм не встроен, но его легко сымитировать. Чтобы это сделать, вручную создадим класс с описанием маршрутов:

В коде выше мы добавили методы. Теперь можно внедрить их в описание маршрутов Javalin и в шаблоны:

Как видите, читаемость кода немного упала. Чтобы ее повысить, можно добавить комментарии над определениями маршрутов, например:

Встраиваем в шаблон:

Теперь ссылка формируется через вызов метода, что дает нам типобезопасность.