Где поставить struts.xml - PullRequest
       32

Где поставить struts.xml

16 голосов
/ 15 мая 2009

В Struts2 у нас должен быть struts.xml в пути к классам, поэтому он больше не работает, когда он находится в WEB-INF. Поэтому мой проект для развертывания заключался в том, чтобы поместить его в WEB-INF/classes и включить в него ../struts2.xml

2 Проблемы:

  1. Eclipse очищает папку классов, когда я делаю перестройку, поэтому удаляет struts.xml
  2. Eclipse не показывает папку классов в моем браузере проекта, поэтому Это плохое место, чтобы вставлять файлы конфигурации.

Как вы, разработчики Struts2 Eclipse, делаете это?

Ответы [ 6 ]

14 голосов
/ 16 мая 2009

Вы можете просто поместить struts.xml в корень вашего исходного каталога или создать дополнительный каталог с исходными ресурсами и поместить его туда. Eclipse с радостью копирует его в WEB-INF / classes для вас, когда выполняет компиляцию.

2 голосов
/ 15 ноября 2014

Я опоздал на вечеринку, мы можем настроить struts.xml в любом каталоге в classpath веб-приложения, но указать местоположение, используя параметр config "config" конфигурации фильтра в web.xml, как показано ниже, если мой файл struts.xml находится в каталоге "/ com / resources /".

   <filter>
        <filter-name>action</filter-name>
        <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
         <init-param>
            <param-name>config</param-name>
            <param-value>struts-default.xml,struts-plugin.xml,/com/resources/struts.xml</param-value>
         </init-param>
    </filter>

Если мы не предоставим конфигурационный параметр init Struts2 по умолчанию принимает 3 значения "struts-default.xml, struts-plugin.xml, struts.xml", вы можете увидеть ниже код класса struts2 Dispatcher, который настроит эти 3 файла в диспетчер конфигурации.

String configPaths = (String)this.initParams.get("config");
if (configPaths == null) {
  configPaths = "struts-default.xml,struts-plugin.xml,struts.xml";
}
String[] files = configPaths.split("\\s*[,]\\s*");
for (String file : files)
  if (file.endsWith(".xml")) {
    if ("xwork.xml".equals(file))
      this.configurationManager.addContainerProvider(createXmlConfigurationProvider(file, false));
    else
      this.configurationManager.addContainerProvider(createStrutsXmlConfigurationProvider(file, false, this.servletContext));
  }
1 голос
/ 15 мая 2009

Я не использую Eclipse, поэтому этот ответ не является специфичным для ваших требований, но я использую Maven, чтобы у нас были все «ресурсы», необходимые приложению, в отдельной папке, называемой «resources», и при создании приложения. эти файлы автоматически копируются в соответствующие места. В Netbeans файлы в папке доступны, и я знаю, что есть люди, использующие Eclipse с подобными настройками.

Я должен отметить, что наш проект начался с appfuse , поэтому большинство этих конфигураций были сделаны заранее. Вы можете посмотреть, как это было сделано там.

0 голосов
/ 23 апреля 2018

В Struts 1.2 требовалось поместить Struts-config.xml в classpath (в папке WEB-INF), но в Struts 2.0 он должен находиться в папке src / main / resources.

См. Документацию Документация по Struts 2 здесь

Я вставил Struts.xml в этот каталог, и проект выполнен нормально.

My project structure looks like this

0 голосов
/ 10 апреля 2014

Вы можете поместить файл struts.xml в пакеты src (Java Resources). Когда процесс компиляции файл struts.xml будет генерироваться внутри каталога ROOT / WEB-INF / classes.

если вы снова и снова получаете одну и ту же ошибку, лучше проверьте действия распорок. Проверьте развернутый путь приложения, и вы можете узнать, что вы хотите. (файл struts.xml)

0 голосов
/ 27 февраля 2012

В проектах Struts 2 файл struts.xml добавляется в папку src (ресурсы Java) вместе с пакетами и библиотеками.

Пожалуйста, обратитесь к изображению, приведенному ниже.

Struts 2 project directory view in eclipse

Если вы хотите узнать больше о структуре проектов Struts 2, пожалуйста, посетите эту ссылку

Примечание : в eclipse вам не разрешено вставлять файл непосредственно в папку src. Поэтому вам нужно сначала вставить его в любое другое место проекта (например, в папку «WebContent»), а затем использовать функцию перемещения, чтобы поместить его в нужное место (это папка «src»).

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