Это пример проблемы, с которой я столкнулся.
Когда пользователь заходит на домашнюю страницу моего приложения, у него есть две возможности:
- вошел в систему
- не вошел в систему
Если пользователь вошел в систему, я хочу отобразить имя пользователя в верхнем правом углу и ссылку с надписью «Выйти».Если пользователь не вошел в систему, я хочу отобразить ссылку с надписью «вход в систему или регистрация».
Ранее я бы вызвал некоторый код из JSP, который вернул бы соответствующий фрагмент HTML, в который я вставил бымоя страница.Но это, вероятно, не лучшая вещь, хотя это просто.
Теперь я считаю, что я должен отправить начальный запрос домашней страницы сервлету (вместо jsp), который будет создавать экземпляр какого-либо объекта типа«HomePage», который имеет подклассы «LoggedInHomePage» и «NotLoggedInHomePage» в зависимости от того, доступен ли идентификатор пользователя в переменной сеанса.Мне нужно будет определить правильный конструктор с помощью оператора if или case.
Пока что это выглядит аккуратнее.Но в этот момент все становится снова грязно, потому что теперь мне нужно знать, есть ли у меня userId, предоставленный в моем «объекте запроса», для которого мне нужно использовать некоторые операторы if, или я использую другой шаблон jsp, который подразумевает наличие двухпочти идентичные jsps, сидящие на сервере для каждой страницы.
Ни одна из них не выглядит элегантной.Помощь наиболее ценится.Если у вас есть четкое решение этой проблемы, пожалуйста, просто проигнорируйте мое описание и выложите его, я не против выбросить любые идеи, которые я представил здесь.