Хорошо, я вытащил какое-то время от работы и исследовать, как основа делает это. Оказывается, Struts 2 имеет реализацию для статического контента. Это настроено в файле конфигурации struts.properties по свойству: struts.serve.static.
Если это свойство установлено в истинного статического контента (JavaScript, CSS, изображения и т.д.) в вашей странице JSP, которая начинается с пути /распорки/ или с /статический/ будет обслуживаемой struts FilterDispatcher и другой класс, называемый DefaultStaticContentLoader.
Например:
<script language="JavaScript" type="text/javascript" src="struts/someScript.js"></script>
<script language="JavaScript" type="text/javascript" src="static/otherScript.js"></script>
Оба этих файлов JavaScript будут обслуживаться фильтр и ContentLoader.
По умолчанию класс ContentLoader будет искать требуемый файл только в двух папках внутри ядра JAR Struts 2: org.apache.struts2.static и шаблон.
Теперь есть способ для вас, чтобы сделать ContentLoader для поиска в других местах, и он настроен в файле web.xml в фильтре Params так:
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
<init-param>
<param-name>packages</param-name>
<param-value>insert.your.package.with.static.content.here</param-value>
</init-param>
</filter>
Это мне потребовалось много времени, чтобы найти это мало информации об этой функции. Если вы хотите прочитать документацию для этого, это находится в API Struts2 в классе FilterDispacher here, где говорится: «Обслуживание статического содержимого».
Надеюсь, вы сочтете это полезным, для меня это отличная функция, и это очень хорошо реализовано.
-1 Это путь от знака. Это статические ресурсы, загруженные непосредственно из браузера клиента и не могут быть выброшены в банку. Вы думаете о ресурсах пути класса, которые может использовать сервер. – Neil