Если вам когда-нибудь понадобится вытащить необработанный API сервлетов из-под колпаков JSF с помощью FacesContext
, то есть вероятность, что вы делаете работу не в том месте. Что это, функциональное требование, для которого вы подумали, что это правильное решение? Может быть, вы не используете реальный класс Servlet
или Filter
вместо управляемого компонента JSF? Или, может быть, вам вообще не нужен URL-адрес запроса, потому что есть лучшие способы «jsfish» для достижения того же самого?
Если вы обновите свой вопрос, включив подробную информацию о функциональных требованиях, мы сможем предложить правильное решение.
Обновление в соответствии с вашими правками: так что, в конце концов, оно вам просто нужно для просмотра? Например. #{bean.requestURL}
? Вы также можете просто извлечь его из объекта HttpServletRequest
, который уже неявно доступен в EL.
Когда вы находитесь на JSP:
${pageContext.request.requestURL}
Или когда вы в Facelets:
#{request.requestURL}
А теперь, как вам это нужно для JavaScript? Печать как переменная JavaScript? Как и так?
var url = '#{request.requestURL}';
Если это так, вы также можете просто взять window.location
для этого.
var url = window.location;
Нет необходимости загромождать компонент JSF подробностями вида.