thanks a lot martin. That's an excellent help. i can not imagine something more eloquent for this specific problem that i had. Thanks.
Just for quick review, if i am not using convention plugin at the moment. I would be converting my action class from struts.xml as <action name="editproductsajaxReadOnly" > class="mop.page.authenticated.EditTableProductsReadOnlyAction" > method="execute"> > <result name="Success">/jsp/EditTableGenericAjax.jsp</result> > </action> > to my spring - applicationContext.xml > <beans default-autowire="autodetect"> > <bean id="tableProductsReadOnly" > class="mop.page.authenticated.EditTableProductsReadOnlyAction"/> > </beans> > and then adding this thing to struts.xml as > <action name="editproductsajaxReadOnly" class="tableProductsReadOnly" > method="execute"> > <result name="Success">/jsp/EditTableGenericAjax.jsp</result> > </action> > and this would definitely be done after setting the autowire property and factory settings for spring. -------------------------------------------------------------------------------------------------------- *One question that i asked earlier, going to ask again here. * integrating spring in struts through spring plugin, does not mean that you have struts as your base framework and then adding spring as one part of it? in my knowledge, spring is the base framework and other are added on top of it. ..alee http://techboard.wordpress.com On Wed, Jun 3, 2009 at 6:46 PM, Martin Gainty <mgai...@hotmail.com> wrote: > > a few considerations: > using convention plugin to create/determine action name > http://struts.apache.org/2.x/docs/convention-plugin.html > > 1) > Action name overrides using annotations as in the example > @Action("FOO-BAR") "FOO-BAR" is action name > 2) > struts.convention.action.name.lowercase=false "foo-bar" is action name > > action locational characteristics: > By default, the Convention plugin will find all action classes > -that implement com.opensymphony.xwork2.Action or > -whose name ends with the word Action in specific packages. > so these Action classes will be 'found' > com.example.actions.MainAction > com.example.actions.products.Display (implements > com.opensymphony.xwork2.Action) > com.example.struts.company.details.ShowCompanyDetailsActionso we now know > how the action name is created and found > > SPRING: > http://struts.apache.org/2.x/docs/spring-plugin.html > > first we need to define StrutsSpringObjectFactory via Struts.properties > struts.objectFactory = org.apache.struts2.spring.StrutsSpringObjectFactory > > > > struts.xml > <struts> > <constant name="struts.objectFactory" > value="org.apache.struts2.spring.StrutsSpringObjectFactory" /> > </struts> > > //you configured your action-name as defined above with annotation and /or > lowercase > struts.objectFactory.spring.autoWire = name > //you can use Spring to auto-create actions or beans > > if you are using context in your xml for params you will need the > ContextLoaderListener defined in web.xml e.g. > > <listener> > > > <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> > </listener> > //application-context.xml contains the name and the class for the 'wired' > bean > as defined here > <?xml version="1.0" encoding="UTF-8<!DOCTYPE beans PUBLIC "-//SPRING//DTD > BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> > <beans default-autowire="autodetect"> > <bean id="personManager" class="com.acme.PersonManager"/> > </beans> > //be aware that name assignment will be 'personManager' > > > //USING context other then applicationContext you can specify so here > <context-param> > <param-name>contextConfigLocation</param-name> > > > <param-value>/WEB-INF/applicationContext-*.xml,classpath*:applicationContext-*.xml</param-value> > </context-param> > > <!-- struts.xml association of Action objects to Spring (personManager) > configuration --> > <!DOCTYPE struts PUBLIC > "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" > "http://struts.apache.org/dtds/struts-2.0.dtd"> > <struts> > <include file="struts-default.xml"/> > <package name="secure" namespace="/secure" extends="default"> > <action name="PersonNameAction" class="personManager"> > <result>bar.ftl</result> > </action> > </package> > </struts><!-- class is defined as PersonManager (NOTE personManager was > assigned by the spring configuration) --> > <!-- if you prefer thread safe implementations you can configure your bean > to specify singleton false --> > > <?xml version="1.0" encoding="UTF-8"?> > <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" " > http://www.springframework.org/dtd/spring-beans.dtd"> > <beans default-autowire="autodetect"> > <bean id="bar" class="com.my.BarClass" singleton="false"/> > </beans> > additional considerations > struts.objectFactory.spring.autoWire.alwaysRespect=true > (currently alwaysRespect false has a bug assigned) > > //choosing autowire type is a safe choice as Action name might be changed > modified by convention-plugin mods > struts.objectFactory.spring.autoWire=type > > I hope this makes the topic clearer to you > Martin Gainty > ______________________________________________ > Verzicht und Vertraulichkeitanmerkung/Note de déni et de confidentialité > > Diese Nachricht ist vertraulich. Sollten Sie nicht der vorgesehene > Empfaenger sein, so bitten wir hoeflich um eine Mitteilung. Jede unbefugte > Weiterleitung oder Fertigung einer Kopie ist unzulaessig. Diese Nachricht > dient lediglich dem Austausch von Informationen und entfaltet keine > rechtliche Bindungswirkung. Aufgrund der leichten Manipulierbarkeit von > E-Mails koennen wir keine Haftung fuer den Inhalt uebernehmen. > Ce message est confidentiel et peut être privilégié. Si vous n'êtes pas le > destinataire prévu, nous te demandons avec bonté que pour satisfaire > informez l'expéditeur. N'importe quelle diffusion non autorisée ou la copie > de ceci est interdite. Ce message sert à l'information seulement et n'aura > pas n'importe quel effet légalement obligatoire. Étant donné que les email > peuvent facilement être sujets à la manipulation, nous ne pouvons accepter > aucune responsabilité pour le contenu fourni. > > > > > > Date: Wed, 3 Jun 2009 04:31:15 -0700 > > From: bphill...@ku.edu > > To: user@struts.apache.org > > Subject: Re: Introducing Spring in Struts2 Project > > > > > > Alee: > > > > I just checked the link to the PDFs and they are working fine. If you > > still > > cannot get them to open, email me at phillips1021 at hotmail dot com and > I > > will send the PDFs > > to you. The PDFs have the link to the source code and explain how to > > build the projects. > > > > Struts 2 has a plug-in that enables the Struts framework to > communicate > > with the Spring framework. > > > > Check out the references for my blog articles for much more > information. > > > > Bruce > > > > @ philips > > i have downloaded the pdf's from your site. thanks. i am going through it > > and i guess those are pretty helpful. still have not started implementing > > those > > > > Quick Question: > > integrating spring in struts through spring plugin, does not mean that > you > > have struts as your base framework and then adding spring as one part of > it? > > in my knowledge, spring is the base framework and other are added on top > of > > it. > > > > ..alee > > http://techboard.wordpress.com > > > > > > > > On Wed, Jun 3, 2009 at 10:18 AM, Wes Wannemacher <w...@wantii.com> > wrote: > > > > > I don't know about Bruce's blog, but I know the source samples for the > > > book > > > he > > > mentioned are available here - > > > > > > struts2inpractice.googlecode.com > > > > > > (btw, thanks for the plug Bruce) > > > > > > -Wes > > > > > > > > -- > > View this message in context: > http://www.nabble.com/Introducing-Spring-in-Struts2-Project-tp23832610p23849807.html > > Sent from the Struts - User mailing list archive at Nabble.com. > > > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: user-unsubscr...@struts.apache.org > > For additional commands, e-mail: user-h...@struts.apache.org > > > > _________________________________________________________________ > Insert movie times and more without leaving Hotmail®. > > http://windowslive.com/Tutorial/Hotmail/QuickAdd?ocid=TXT_TAGLM_WL_HM_Tutorial_QuickAdd_062009 >