У меня есть файл с именем Main.jsp, расположенный по абсолютному пути URL-адреса "http://Mywebpage.com/Open/This/Folder/Main.jsp".
Внутри Main.jsp, есть jsp:
<%@ include file="../../Top.jsp" %>
Теперь внутриНа странице Top.jsp у меня есть другие операторы jsp и javascript, которые ссылаются на файлы:
<%@ taglib uri="emonogram.tld" prefix="em" %>
...
<script type="text/javascript" src="HL.js"></script>
emonogram.tld и HL.js хранятся в том же каталоге, что и Top.jsp, то есть "http://Mywebpage.com/Open/".
Мне нужно, чтобы Top.jsp был достаточно гибким, чтобы любой файл мог ссылаться на него, независимо от того, где он находится в дереве каталогов.Проблема в том, что я получаю ошибки, потому что файлы, на которые есть ссылки в Top.jsp, не могут быть найдены.Зачем?Путь включения jsp будет относительным путем к Main.jsp.Итак, Top.jsp потерпит неудачу, потому что, когда я вызываю emonogram.tld, я хочу «http://Mywebpage.com/Open/emonogram.tld",, но на самом деле» http://Mywebpage.com/Open/This/Folder/emonogram.tld".
Я попытался просмотреть некоторые параметры jsp, такие как getRequestURL, getServletPath, getRealPath,и getContextPath, но эти методы, похоже, не возвращают то, что я хочу.
Моя текущая логика заключается в том, чтобы получить относительный путь Top.jsp и добавить его к emonogram.tld и HL.js соответственно.Но я не знаю, как это сделать;Я пытаюсь понять это.
Обновление: согласно ответу BalusC, у меня установлены теги и Tomcat 5.5.Я перешел по ссылке и web.xml содержит соответствующую информацию.Я даже обновил до JSP 1.2 и ничего.Если ${}
- это всего лишь эквивалент выполнения этого внутри тегов <% %>
, то это не ситуация, связанная с созданием или разрывом, и я могу беспокоиться об этом после того, как у меня будет работать оригинальный вопрос.Но спасибо.
Я перешел по этой ссылке и перепробовал все методы, начиная с "get ...", и ни один из них, похоже, не помог.
getContextPath()
дает мне /Open
в ОБАХ Top.jsp и Main.jsp, хотя Main.jsp находится в / Open / This / Folder /.К сожалению, эта проблема влияет на загрузку "emonogram.tld"
, которая является библиотекой тегов, а не только файлами javascript.
Еще раз спасибо.
Update2: Мои извинения, большоеорфографическая ошибка;Я имел в виду JSTL 1.2, а не JSP 1.2.Я нахожусь на Tomcat 5.5.28, JSP 2.0 и JSTL 1.2.
Кстати, спасибо за вашу помощь и знания.Это то же самое, что хорошо, даже если скриптлеты не поощряются.С getcontextPath()
я ожидаю /Open/This/Folder/
для Main.jsp и /Open/
для Top.jsp, но он возвращает /Open/
для обоих файлов, что довольно странно.Я продолжу расследование и, надеюсь, доберусь до решения, еще раз спасибо.