Я нахожусь на ранних этапах разработки нового сайта с использованием Spring + Tiles. Сайт нуждается в динамически генерируемых панировочных сухарях.
Под динамическим я подразумеваю то, что пользователь может попасть на определенный сайт из нескольких начальных точек. Если у меня есть просмотры для клиентов, заказов и продуктов, пользователь может напрямую связаться с продуктом:
Products -> Product xyz
или пользователь мог получить доступ к продукту через заказ клиента:
Customers -> John Doe -> Orders -> Order 123 -> Product xyz
Каков наилучший способ получить такие хлебные крошки в среде Java? Я ранее делал это, используя атрибут запроса (вектор объектов URL), который заполняется URL-адресами в каждом действии / сервлете моего веб-приложения (например, в списке действий «Список продуктов»). Я не доволен этим решением, поскольку оно требует добавления кода к каждому контроллеру / действию для создания следа хлебных крошек. И в таком случае, как просмотр продукта данного заказа данного клиента, логика if-then-else, необходимая для определения следа, ужасна.
Есть ли библиотеки, которые я мог бы использовать?




Почему бы вам просто не использовать переменную сеанса, в которой хранится след? Каждое представление должно только либо добавить себя к переменной, либо сбросить переменную в случае «корневых» представлений. Код для его добавления и код для его отображения всегда будут одинаковыми и могут быть помещены в общую библиотеку, вы просто должны вызвать его с флагом для добавления или сброса значения в случае сохранения следа.
Как правило, у каждой из нескольких вкладок будет свой сеанс, в зависимости от вашего веб-сервера.
Struts2 имеет плагин панировочные сухари.
Существует более свежий плагин хлебных крошек struts2размещен в коде Google, он очень настраиваемый и должен удовлетворить ваши потребности.
Это хорошая идея, но проблема с этим будет в том случае, если пользователь просматривает один и тот же сайт на нескольких вкладках (по крайней мере, я надеюсь, что пользователи понимают это)