2009-04-24 4 views
0

Мне нужно определить, существует ли изображение в теге JSP, поэтому я могу отображать значение по умолчанию, если оно не существует. Каков наилучший способ доступа к корню War, чтобы я мог проверить, существует ли изображение? Или есть лучшее решение?Как получить доступ к корню WAR?

ответ

1

ServletContext способ getResource можно использовать для таких функций. Если ресурс (изображение) не существует, этот метод возвращает null. В этом случае может отображаться изображение по умолчанию.

Обратите внимание, что URL-адрес этого метода возвращает не URL-адрес, используемый в качестве атрибута «src» в теге <img>. Скорее всего, это URL-адрес file: или jar:, который не имеет смысла на другом хосте. В этом приложении его проверяют только на наличие null, а не на JSP.

+0

Единственная проблема заключается в том, что веб-фреймворк, который мы вынуждены использовать, скрывает любой доступ к ServletContext. – Joshua

+0

Действительно? Какие рамки? Разумные рамки по-прежнему обеспечивают доступ к областям приложений, сеансов и запросов, обертывая их каким-то абстрактом. Есть клопы, которые вы можете сделать, если ваша структура действительно ограничена. – erickson

+0

Обратите внимание на слово «принудительное». Разумные рамки не навязываются разработчикам. Разработчики выбирают их, потому что они разумны. – Joshua

1

Также обратите внимание, что нет гарантии, что веб-контейнер взорвал ваш WAR-файл, поэтому вам не следует заглядывать в файловую систему.

Будет ли возможность генерировать список доступных изображений во время развертывания?

+0

Конечная цель состоит в том, чтобы просто увидеть, существует ли изображение, иначе отображается значение по умолчанию, так что это сработает. – Joshua

Смежные вопросы