Как получить HttpServletResponse с портала liferay без использования PortalUtil.getHttpServletResponse

Мы используем портлет endeca, и я хочу знать, как получить HttpServletResponse из ответа на действие портала liferay без использования метода PortalUtil.getHttpServletResponse.


person narma    schedule 28.03.2016    source источник
comment
пожалуйста, прочитайте meta.stackexchange.com/questions/141823, прежде чем в следующий раз делать кросспост. Перекрестная ссылка: liferay.com/community/forums/-/message_boards/message/ 72114297   -  person Olaf Kock    schedule 29.03.2016


Ответы (1)


Прямой ответ на ваш вопрос: Посмотрите, как Liferay реализует базовый метод. Вам придется дублировать этот код, потенциально дублируя несколько классов, недоступных для приложений.

Косвенный ответ: я сомневаюсь, что вы можете сделать с HttpServletResponse что-то значимое, кроме как все испортить: Liferay, возможно, уже записал в него какой-то контент, когда вы его получите. Таким образом, вы не можете полагаться на включение HTTP-заголовков (воспроизводимо). Черт возьми, вы даже не знаете, доставляется ли ваш портлет через Ajax или встраивается в страницу.

Иди с неответом. Если вы не столкнетесь с серьезной основной проблемой, я настоятельно не рекомендую этого делать (я бы даже настоятельно не советовал делать это, если вы только что использовали PortalUtil). В большинстве случаев попытка доступа к HttpServletRequest является взломом. В HttpServletResponse я даже не могу придумать что-то, что можно было бы взломать таким образом.

person Olaf Kock    schedule 28.03.2016