Struts 2 диспетчер - PullRequest
       27

Struts 2 диспетчер

1 голос
/ 28 января 2010

Я хотел бы инициализировать (в Struts2) свойство (загрузка данных из файла) только один раз и сделать это свойство доступным для всего приложения Struts 2. как я могу этого достичь? мне нужно переопределить распорки 2 диспетчера?

С уважением Раджу

1 Ответ

1 голос
/ 04 февраля 2010

Вы можете создать ServletContextListener, определенный в web.xml, который открывает ваш файл свойств и устанавливает желаемое значение на ServletContext через:

getServletContext().setAttribute("dataKey", dataValue);

ServletContext имеет область применения.

Обновление:

Вы можете создать новый класс, который реализует ServletContextListener (вот его JavaDoc: ServletContextListener ), для которого необходимо определить методы contextInitialized() и contextDestroyed().

Метод contextInitialized() вызывается непосредственно перед тем, как ваш сервлет начинает принимать запросы. В ваш метод contextInitialized() вы бы включили вызов getServletContext().setAttribute("dataKey", dataValue).

Чтобы зарегистрировать слушателя, вам нужно добавить определение слушателя в ваш файл web.xml:

<listener>
    <listener-class>CLASS_PATH.CLASS_NAME</listener-class>
</listener>

Вам потребуется заменить CLASS_PATH.CLASS_NAME в приведенном выше XML-адресе на путь к классу и имя класса прослушивателя контекста, который вы только что создали.

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