Контроллер Struts создает объект действия при чтении файла struts-config.xml? - PullRequest
0 голосов
/ 11 марта 2010
  1. что значит "распорки" контроллер читает файл struts-config.xml "когда-либо веб-приложение запущено?

  2. это контроллер создания объектов действия во время чтения Struts-config файл

Ответы [ 3 ]

2 голосов
/ 11 марта 2010

когда Struts читает файл, он только анализирует его и загружает определения действий. Единственные ошибки, которые вы получите, это ошибки синтаксического анализа XML. Не уверен насчет Struts 2, но в Struts 1 он не подтвердит существование или компиляцию объектов или перенаправленных целей. Это проверка во время выполнения

1 голос
/ 11 марта 2010

- контроллер создает объекты действия при чтении файла конфигурации struts

Я думаю, что это происходит лениво (при обращении к URL). По крайней мере Struts1 делает.

0 голосов
/ 11 марта 2010

1. что означает «контроллер Struts читает файл struts-config.xml» при запуске веб-приложения?

«Чтение» означает, что Struts проанализирует файл XML и создаст объектные представления тегов, которые вы объявили внутри (например, ActionMapping отражает тег <action>). Затем эти объекты будут использоваться всякий раз, когда Struts необходимо будет знать различную информацию о конфигурации, избегая необходимости выполнять дорогостоящие операции ввода-вывода, чтобы каждый раз переходить к XML-файлу.

Класс, содержащий правила для анализа файла: org.apache.struts.config.ConfigRuleSet (javadoc: набор правил Digester, необходимых для анализа файла конфигурации Struts (struts-config.xml)).

2. контроллер создает объекты действий при чтении файла конфигурации Struts?

Нет, это делается позже, когда приходит запрос.

Когда поступает запрос, Struts пытается найти уже существующий экземпляр Action, который соответствует URL-пути. Если он находит его, он возвращает его, иначе он создаст его и сохранит для дальнейшего использования, прежде чем вернуть.

Метод RequestProcessor.processActionCreate делает это (javadoc: возвращает экземпляр Action, который будет использоваться для обработки текущего запроса, создавая новый при необходимости).

...