Хорошо - так как никто больше не хочет идти.
Sitemesh выбирает декораторы на основе входящей строки URL-адреса, поэтому, чтобы иметь разные декораторы, вам нужны разные URL-адреса в зависимости от состояния входа в систему вашего клиента. AFAIK Sitemesh использует всю строку Url, поэтому она включает параметры, поэтому вы можете избежать добавления? LoggedIn = "true" или? LoggedIn = "false" и сопоставить декораторы с этим. Однако это не помогает с запросами POST.
Еще один способ сделать это - создать два пакета Struts - один для вошедших в систему пользователей и один для анонимных пользователей, чтобы ваши действия имели разные пути, а затем отображались в части пути URL-адреса.
Я не знаю, насколько это может быть практично в вашем сценарии, но третий вариант может иметь один общий декоратор и управлять макетом с помощью отдельных таблиц стилей, которыми вы можете управлять с помощью теста в вашем jsp.
НТН
Привет