yes, i read the documentation for that before posting here too. it says to "simply" drop in the struts2-spring-plugin-<version>.jar. i already have that in /WEB-INF/lib. however, towards the end of the document, they are referencing how to initialize Actions from spring using struts.xml and applicationContext.xml. since i am using Annotations and the conventions plugin, i don't think this is what i am looking for. currently, my struts.xml file is 3 lines only! (minus the DOCTYPE lines).
there are little but significant differences in how a struts2 based application behaves using the convention plugin (as opposed to using the traditional struts.xml file). i am committed to using the convention plugin + annotations and to avoid as much as possible configurations in struts.xml. if there is an example of how to get all this working (struts2 + convention + annotations + spring), i would be most pleased. thanks. On Thu, May 13, 2010 at 8:24 AM, Denis Cabasson <denis.cabas...@gmail.com> wrote: > Jake, the short answer to your problem is : use the struts-spring plugin ( > http://struts.apache.org/2.1.8.1/docs/spring-plugin.html ). Include the jar > for that plugin in your classpath, and Struts 2 will use Spring to manage > the Action lifecycle, meaning you can inject anything the way you are > describing it above (including String, etc...) > Denis. > > Le 2010-05-13 08:09, Jake Vang a écrit : >> >> thanks. example please? (when you have time). >> >> On Thu, May 13, 2010 at 6:52 AM, James Cook<james.c...@wecomm.com> wrote: >> >>> >>> Ahh hmm. >>> >>> You can use the autowired, You just have to declare you stuff in the >>> spring xml. E.g. >>> >>> <bean id="myJDBCString" class="java.lang.String" .... >>> >>> I think you can also use the @Resource anno as well. Can't think off the >>> top of my head. >>> >>> -----Original Message----- >>> From: Jake Vang [mailto:vangj...@googlemail.com] >>> Sent: 13 May 2010 11:44 >>> To: Struts Users Mailing List >>> Subject: Re: spring, struts2, convention plugin, how to "wire" an action >>> class >>> >>> yes. precisely. >>> >>> On Thu, May 13, 2010 at 6:41 AM, James Cook<james.c...@wecomm.com> >>> wrote: >>> >>>> >>>> Oh, did you want your action as a spring managed bean? Ah I think i >>>> massively miss read you. You want to inject predefined values etc? >>>> >>>> >>>> -----Original Message----- >>>> From: Jake Vang [mailto:vangj...@googlemail.com] >>>> Sent: 13 May 2010 11:38 >>>> To: Struts Users Mailing List >>>> Subject: Re: spring, struts2, convention plugin, how to "wire" an action >>>> class >>>> >>>> thanks. i won't go that route. i noticed your example (in the first >>>> response) and i realized that i may trying to push some business logic >>>> into the Action class. and, i don't think that's too good of a >>>> practice. i simply revised my Service class to hold these values >>>> (booleans, String, int, etc...) and now the problem goes away. it's a >>>> workaround. >>>> >>>> if anyone is reading this post and knows how to use struts2 (w/ >>>> convention plugin) + spring to construct Action classes, please let me >>>> know. the examples i've seen are only with struts1 (and though not too >>>> complicated, seem verbose with the xml). >>>> >>>> On Thu, May 13, 2010 at 6:20 AM, James Cook<james.c...@wecomm.com> >>>> wrote: >>>> >>>>> >>>>> Yeah sorry, short on time here, didn't see your question at the bottom. >>>>> Add the spring jar from the spring project. >>>>> >>>>> -----Original Message----- >>>>> From: Jake Vang [mailto:vangj...@googlemail.com] >>>>> Sent: 13 May 2010 11:16 >>>>> To: Struts Users Mailing List >>>>> Subject: Re: spring, struts2, convention plugin, how to "wire" an >>>>> action class >>>>> >>>>> doesn't answer the question but thanks anyways. >>>>> >>>>> On Thu, May 13, 2010 at 6:12 AM, James Cook<james.c...@wecomm.com> >>>>> wrote: >>>>> >>>>>> >>>>>> Nope, no they are not in the xml for me. I use the >>>>>> @Service/@Repository annotations on the class, coupled with the component >>>>>> scan in the Spring xml. >>>>>> >>>>>> -----Original Message----- >>>>>> From: Jake Vang [mailto:vangj...@googlemail.com] >>>>>> Sent: 13 May 2010 11:09 >>>>>> To: Struts Users Mailing List >>>>>> Subject: Re: spring, struts2, convention plugin, how to "wire" an >>>>>> action class >>>>>> >>>>>> well, there's something strange about struts2 (with convention plugin) >>>>>> + spring. if your action has a field representing a service, >>>>>> MyInjectedService myInjectedService, you just have to define that in >>>>>> the spring xml file. for example, your Action class looks like the >>>>>> following. >>>>>> >>>>>> public class MyAction extends ActionSupport { >>>>>> private Service service; >>>>>> >>>>>> �...@action(value="/dummy") >>>>>> public String dummy() { return SUCCESS; } >>>>>> public Service getService() { return service; } >>>>>> public void setService(Service service) { this.service = service; } >>>>>> } >>>>>> >>>>>> in your spring xml file (i.e. applicationContext.xml), you simply >>>>>> define a bean with the id="service". for example, >>>>>> >>>>>> <bean id="service" class="my.class.Service"/> >>>>>> >>>>>> that's it; you don't have to do anything else. you don't even have to >>>>>> explicitly say (using XML) to inject this when you are creating an >>>>>> instance of MyAction. now when a user accesses /dummy, MyAction will >>>>>> be created and its service field will actually be injected with what >>>>>> is specified in the spring xml file. >>>>>> >>>>>> what irks me or bothers me is that it is not obvious at the moment >>>>>> how to simply inject strings or booleans into the Action class. it >>>>>> should be just as simple. >>>>>> >>>>>> upon analyzing what i am doing, and in light of what you said, perhaps >>>>>> i am trying to push some logic into the Action class that shouldn't be >>>>>> there. perhaps i should push the logic to a service class instead. in >>>>>> this case, this problem goes away. BUT, the question remains, how can >>>>>> i use DI with struts2 (convention plugin) and spring on Action >>>>>> classes? or can i not? if i can't, end of story. if i can, how? >>>>>> >>>>>> On Thu, May 13, 2010 at 5:44 AM, James Cook<james.c...@wecomm.com> >>>>>> wrote: >>>>>> >>>>>>> >>>>>>> Hmm. I use the same combo. >>>>>>> >>>>>>> I found at some point I could jsut do >>>>>>> >>>>>>> public class MyAction extends ActionSupport { >>>>>>> >>>>>>> private MyInjectedService service >>>>>>> >>>>>>> etc etc >>>>>>> >>>>>>> But I have started doing: >>>>>>> >>>>>>> public class MyAction extends ActionSupport { >>>>>>> >>>>>>> @Autowired >>>>>>> private MyInjectedService service >>>>>>> >>>>>>> I am not sure if that alters the way Struts2/Spring does it. But it >>>>>>> does >>>>>>> make it a bit clearer to read. >>>>>>> >>>>>>> -----Original Message----- >>>>>>> From: Jake Vang [mailto:vangj...@googlemail.com] >>>>>>> Sent: 13 May 2010 10:23 >>>>>>> To: user@struts.apache.org >>>>>>> Subject: spring, struts2, convention plugin, how to "wire" an action >>>>>>> class >>>>>>> >>>>>>> i am using struts 2.1.8.1 and the convention plugin. i am also using >>>>>>> spring for dependency injections (DI). my question is if it is >>>>>>> possible to to use struts2 + convention plugin with spring for DI on >>>>>>> my Action classes? i have searched the internet but only seen >>>>>>> examples using struts 1 + spring for DI on Action classes. the >>>>>>> convention plugin makes life simpler (no XML), but also, partially >>>>>>> because of little documentation, makes it uneasy to do certain >>>>>>> things. >>>>>>> i wonder if this is part of the reason why DI on Action classes using >>>>>>> spring + struts is not obvious for me. >>>>>>> >>>>>>> Here's a simple code. This is my action class. >>>>>>> >>>>>>> public class SpringWiringAction extends ActionSupport { >>>>>>> private String message = "no dependency injection"; >>>>>>> >>>>>>> �...@action(value="/spring-wiring") >>>>>>> public String springWiring() { >>>>>>> return SUCCESS; >>>>>>> } >>>>>>> >>>>>>> public String getMessage() { return message; } >>>>>>> public void setMessage(String message) { this.message = message; } >>>>>>> } >>>>>>> >>>>>>> My "view" or the JSP page corresponding to the Action is: >>>>>>> /webapp/WEB-INF/content/spring-wiring-success.jsp. >>>>>>> >>>>>>> <%@ page language="java" contentType="text/html; charset=ISO-8859-1" >>>>>>> pageEncoding="ISO-8859-1"%> >>>>>>> <%...@taglib uri="/struts-tags" prefix="s" %> >>>>>>> <html> >>>>>>> <head><title>Test Spring Wiring</title</head> >>>>>>> <body> >>>>>>> <s:property value="message"/> >>>>>>> </body> >>>>>>> </html> >>>>>>> >>>>>>> My web.xml is setup according to >>>>>>> http://struts.apache.org/2.0.14/docs/struts-2-spring-2-jpa-ajax.html. >>>>>>> >>>>>>> My spring XML file (/webapp/WEB-INF/applicationContext.xml) is >>>>>>> defined >>>>>>> as following. >>>>>>> >>>>>>> ... >>>>>>> <bean id="placeholderConfig" >>>>>>> >>>>>>> class="org.springframework.beans.factory.config.PropertyPlaceholderConfi >>>>>>> gurer"> >>>>>>> <property name="location" >>>>>>> value="WEB-INF/applicationContext.properties"/> >>>>>>> </bean> >>>>>>> ... >>>>>>> <bean name="/spring-wiring" >>>>>>> class="com.me.actions.SpringWiringAction"> >>>>>>> <property name="message" value="${message}"/> >>>>>>> </bean> >>>>>>> >>>>>>> My /webapp/WEB-INF/applicationContext.properties file then has this >>>>>>> content. >>>>>>> >>>>>>> message=dependency inject success >>>>>>> >>>>>>> when i start up tomcat 6, everything starts up correctly and there >>>>>>> are >>>>>>> no complaints. however, when i go to >>>>>>> http://localhost/webapp/spring-wiring, the message that gets >>>>>>> displayed >>>>>>> is "no dependency injection". >>>>>>> >>>>>>> is there something that i am missing using spring + struts2 (with the >>>>>>> convention plugin) to use DI on Actions? >>>>>>> >>>>>>> --------------------------------------------------------------------- >>>>>>> To unsubscribe, e-mail: user-unsubscr...@struts.apache.org >>>>>>> For additional commands, e-mail: user-h...@struts.apache.org >>>>>>> >>>>>>> >>>>>>> --------------------------------------------------------------------- >>>>>>> To unsubscribe, e-mail: user-unsubscr...@struts.apache.org >>>>>>> For additional commands, e-mail: user-h...@struts.apache.org >>>>>>> >>>>>>> >>>>>>> >>>>>> >>>>>> --------------------------------------------------------------------- >>>>>> To unsubscribe, e-mail: user-unsubscr...@struts.apache.org >>>>>> For additional commands, e-mail: user-h...@struts.apache.org >>>>>> >>>>>> >>>>>> --------------------------------------------------------------------- >>>>>> To unsubscribe, e-mail: user-unsubscr...@struts.apache.org >>>>>> For additional commands, e-mail: user-h...@struts.apache.org >>>>>> >>>>>> >>>>>> >>>>> >>>>> --------------------------------------------------------------------- >>>>> To unsubscribe, e-mail: user-unsubscr...@struts.apache.org >>>>> For additional commands, e-mail: user-h...@struts.apache.org >>>>> >>>>> >>>>> --------------------------------------------------------------------- >>>>> To unsubscribe, e-mail: user-unsubscr...@struts.apache.org >>>>> For additional commands, e-mail: user-h...@struts.apache.org >>>>> >>>>> >>>>> >>>> >>>> --------------------------------------------------------------------- >>>> To unsubscribe, e-mail: user-unsubscr...@struts.apache.org >>>> For additional commands, e-mail: user-h...@struts.apache.org >>>> >>>> >>>> --------------------------------------------------------------------- >>>> To unsubscribe, e-mail: user-unsubscr...@struts.apache.org >>>> For additional commands, e-mail: user-h...@struts.apache.org >>>> >>>> >>>> >>> >>> --------------------------------------------------------------------- >>> To unsubscribe, e-mail: user-unsubscr...@struts.apache.org >>> For additional commands, e-mail: user-h...@struts.apache.org >>> >>> >>> --------------------------------------------------------------------- >>> To unsubscribe, e-mail: user-unsubscr...@struts.apache.org >>> For additional commands, e-mail: user-h...@struts.apache.org >>> >>> >>> >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: user-unsubscr...@struts.apache.org >> For additional commands, e-mail: user-h...@struts.apache.org >> >> >> > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: user-unsubscr...@struts.apache.org > For additional commands, e-mail: user-h...@struts.apache.org > > --------------------------------------------------------------------- To unsubscribe, e-mail: user-unsubscr...@struts.apache.org For additional commands, e-mail: user-h...@struts.apache.org