Генерация динамических хлебных крошек - как это сделать?

Я нахожусь на ранних этапах разработки нового сайта с использованием Spring + Tiles. Сайт нуждается в динамически генерируемых панировочных сухарях.

Под динамическим я подразумеваю то, что пользователь может попасть на определенный сайт из нескольких начальных точек. Если у меня есть просмотры для клиентов, заказов и продуктов, пользователь может напрямую связаться с продуктом:

Products -> Product xyz

или пользователь мог получить доступ к продукту через заказ клиента:

Customers -> John Doe -> Orders -> Order 123 -> Product xyz

Каков наилучший способ получить такие хлебные крошки в среде Java? Я ранее делал это, используя атрибут запроса (вектор объектов URL), который заполняется URL-адресами в каждом действии / сервлете моего веб-приложения (например, в списке действий «Список продуктов»). Я не доволен этим решением, поскольку оно требует добавления кода к каждому контроллеру / действию для создания следа хлебных крошек. И в таком случае, как просмотр продукта данного заказа данного клиента, логика if-then-else, необходимая для определения следа, ужасна.

Есть ли библиотеки, которые я мог бы использовать?

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
0
10 507
3

Ответы 3

Почему бы вам просто не использовать переменную сеанса, в которой хранится след? Каждое представление должно только либо добавить себя к переменной, либо сбросить переменную в случае «корневых» представлений. Код для его добавления и код для его отображения всегда будут одинаковыми и могут быть помещены в общую библиотеку, вы просто должны вызвать его с флагом для добавления или сброса значения в случае сохранения следа.

Это хорошая идея, но проблема с этим будет в том случае, если пользователь просматривает один и тот же сайт на нескольких вкладках (по крайней мере, я надеюсь, что пользователи понимают это)

kosoant 02.10.2008 13:01

Как правило, у каждой из нескольких вкладок будет свой сеанс, в зависимости от вашего веб-сервера.

Adam Tuttle 23.12.2008 23:18

Struts2 имеет плагин панировочные сухари.

Существует более свежий плагин хлебных крошек struts2размещен в коде Google, он очень настраиваемый и должен удовлетворить ваши потребности.

Другие вопросы по теме