Struts и Spring вместе?

голоса
2

Я довольно новыми для обоих Struts и Spring. Мне нужно знать, как получить доступ к Спринг службы в Struts ActionForm. Даже указатель в правильном направлении будет оценен.

Задан 09/12/2008 в 21:44
источник пользователем
На других языках...                            


3 ответов

голоса
2

Вы используете Struts 1 или 2?

Если вы используете Struts 1, то есть несколько способов сделать это. Я предпочитаю делать это с помощью org.springframework.web.struts.DelegatingActionProxy. Вы должны будете иметь пружинную webmvc-struts.jar в пути к классам.

распорки-config.xml:

   <action path="/faq" type="org.springframework.web.struts.DelegatingActionProxy" name="faqForm" parameter="method">
        <forward name="List" path="faq.list" />
    </action>

applicationContext.xml:

<bean name="/faq" class="com.mypackage.FAQAction" autowire="byType" />

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

Есть еще по крайней мере два способа интеграции Struts 1 с пружиной. Там в статье на IBM DeveloperWorks, что объясняет плюсы и минусы различных решений, Google «Получите лучшую ручку на действия Struts, с весной» (новички вроде меня не может включать ссылки).

Ответил 25/05/2009 в 15:01
источник пользователем

голоса
2

Из класса ActionForm распорки 1 вы будете нуждаться:

WebApplicationContextUtils.getRequiredWebApplicationContext(servletContext).getBean("yourService");
Ответил 09/12/2008 в 23:03
источник пользователем

голоса
1

Обычно вы добавляете пружинный ContextLoader слушателя на свой веб-XML.

<listener>
 <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

Затем вы добавляете

<constant name="struts.objectFactory" value="spring"/>

к вашему struts.xml.

Тогда в классе действий вы можете сказать такие вещи, как:

class MyAction {
  @Autowired MyService service;
   ....
}

Это все, что есть в ней struts2.

Ответил 09/12/2008 в 21:54
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more