c: тег url включает строку запроса идентификатора jsession

Как лучше всего получить context-root на странице jsp. Если я жестко закодирую свой css / image на «/myapp/images/foo.gif», то это будет неработающая ссылка, если будет изменен корень контекста / имя приложения. Использование относительного пути не всегда предпочтительнее, потому что корень контекста может быть многопутевым (например: / mysite / myapp)

До сих пор я пробовал использовать <c:url var="root" value="/"/>, который работает нормально (${root} предоставит корневой контекст /myapp/), однако, если это первый раз, когда пользователь посещает сайт (или если файл cookie очищается в браузере), значение, присвоенное ${root} стал чем-то вроде /myapp/;jsessionid=019762g1hk3781kh98uihilho, и это нарушает ссылку images / css. Есть ли другой способ лучше, чем этот?


person gerrytan    schedule 04.02.2013    source источник
comment
Примечание: это не строка запроса, это фрагмент пути URI. Строка запроса - это часть после ? в URL.   -  person BalusC    schedule 04.02.2013


Ответы (1)


До сих пор я пробовал использовать <c:url var="root" value="/"/>, который работает нормально ($ {root} предоставит context-root / myapp /)

Это неправильный путь. <c:url> следует применять к каждому URL отдельно.

Тебе лучше использовать

<c:set var="root" value="${pageContext.request.contextPath}" />

Смотрите также:

person BalusC    schedule 04.02.2013