Доступ к полному URL, включая имя хоста с помощью jstl - PullRequest
7 голосов
/ 06 октября 2011
<c:url var="myUrl" value="/MyPath/${MyID}"/>

, который я потом использую (чтобы пользователи могли копировать ссылки):

<input size="35" disabled value="${myUrl}" />

, и он показывает

/my-app-name/MyPath/23

, однако я хочу, чтобы он был

http://myHost/my-app-name/MyPath/23

Я могу предварительно добавить строку, но хотел получить способ активного получения правильного имени хоста ...?

Ответы [ 2 ]

23 голосов
/ 06 октября 2011

Вам нужно подготовить его самостоятельно на основе HttpServletRequest#getRequestURL() и небольшой помощи функций JSTL :

<c:set var="req" value="${pageContext.request}" />
<c:set var="baseURL" value="${fn:replace(req.requestURL, fn:substring(req.requestURI, 1, fn:length(req.requestURI)), req.contextPath)}" />
...
<c:url var="myUrl" value="${baseURL}/${MyID}"/>
7 голосов
/ 06 октября 2011

Объект HttpServletRequest имеет все детали:

  • getProtocol
  • getServerName
  • getContextPath

такЯ думаю, что вы можете использовать:

${request.protocol} :// ${request.serverName} ${request.contextPath} /etc

, чтобы построить то, что вы хотите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...