load dynamically created files in jsp
Hi I have a scenario where i create a temporary dynamic image file from the database and try to show it on my jsp. The file url shows the image properly, but when in jsp , my browser says that "Firefox doesn't know how to open this address, because the protocol (d) isn't associated with any program" the url i get is like D:\myWorkspace\ui\WebContent\images\JavaTemp2261198016333434327.jpg, that is my struts project folder. How can i make the image accessible to my jsp. -- Thanks and Regards Upasana Sharma
Struts Validation Framework - Focus and Select form field
Hi, On one of my project we are using struts validation framework...i am using client side validation...requirement is when form field value is invalid its focusing into specific field...at same time i have to select existing value invalid text...like focus() and select() Thanks, -Soma -- View this message in context: http://old.nabble.com/Struts-Validation-Framework---Focus-and-Select-form-field-tp28554892p28554892.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
Re: how to set default focus field in ?
As a simple solution, why not just modify the form tag template and if the focusElement parameter is set, include a simple javascript block at the close of the form to set the focus. Just keep in mind that if there are two forms on a page and both have the focusElement parameter set only the last will be relevant. The advantage being you can use javascript code to match your environment jQuery, Dojo, pure javascript, etc. Z. > > I recommend attaching the focus to the relevant form element purely > using Javascript, > > ie, including in you JSP : > > window.onload = function() { > document.getElementById('yourInpudId').focus(); > } > > > That way you have a pure javascript implementation, and you can push > that code to the relevant JSP without having to mess up with your template. > > My second recommendation is to use a Javascript framework, instead of > the plain and ugly javascript as up there (since the example above will > break if you want to attach more than one thing to the onload). > So rewritten with jquery ( http://jquery.com/ ) > > $(document).ready(function() { >$('yourInpudId').focus(); > }); > > > But the idea is the same in both case, do the focus purely in Javascript. > > Denis. > > Le 2010-05-12 14:53, Emi Lu a écrit : >> > >>> By using tiles, is in global_layout.jsp page, for decedent >>> pages, >>> I will not be able to set body onload. >>> >>> >> >>> >> Admittedly I don't know tiles, but Sitemesh will copy the body onLoad >>> >> and >>> >> unload functions to the decorating page and I would be suprised if Tiles >>> >> didn't support this as well. >> > >> > For the global page.jsp: if body onload is set, it's for all >> > decedents; no, I do not want that. >> > >> > (1) Do not bother to create several parents layout files >> > (2) Only one file needs default focus; >> > Other hundreds of .jsp foucs will be set differently or >> > not set at all >> > >> > So, I do need s:form to support focus. >> > >> > -- >> > Lu Ying >> > >> > - >> > 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 >
Re: spring, struts2, convention plugin, how to "wire" an action class
My best guess is that the Action instance used in the web application is not actually loaded from the configuration in your applicationContext, but directly by Struts 2 (through the Spring Factory, but still Struts 2). That mean that you will have a bean named myAction in you application context, but that is not the bean that will actually be used by Struts to serve your request. Struts will create another instance, which won't have any of your configuration. This different instance is then autowired by type (defaut behaviour) which means your service (configured in your context) gets injected because it has the right type. I can't actually confirm that behaviour, but that seems like the likely explanation. I will be able to double check tomorrow. To check that, I can recommend 2 things : * Set the autowiring to be by name, create 2 beans named verbose and message, and see how that works * Leaving the autowiring by type, create 2 instances of your service, and my best guess is that Struts will crash, unable to decide between the 2 I think what your are missing is the fact that while struts uses Spring to manage the lifecycle of its action, it doesn't use the action defined in your application context, but will load its own instances, and autowire them. Denis. Le 2010-05-13 20:18, Jake Vang a écrit : roger, thanks for the steps. i went through each of those steps and made sure my settings/configurations complied. however, i still cannot initialize Action classes using Spring. as an illustration of the problem i am facing, i have created an example that you may download and verify for yourself that this does not work. http://www.box.net/shared/iycamr9uo6 this will download a zip file with an Eclipse project; unzip it. if you have Ant, you simply type in "ant war" and the war file will be created. if you have Tomcat, then drop the war file into the webapps directory (assuming you have Tomcat 6.0). if you go to http://localhost:8080/myapp/, you will see four lines displayed. String from Action: default boolean from Action: false String from Service: overwritten boolean from Service: true The first and second lines confirm that the String and boolean values are not injected into the Action class. The third and fourth lines confirm that the String and boolean values are injected into the service class. thanks. On Thu, May 13, 2010 at 9:32 AM, RogerV wrote: Jake Vang wrote: If you want Spring to create your action class (as opposed to Struts creating them) then you need to define your action in the applicationContext.xml file. how do you do that? here's a couple of ways i have tried that do NOT work. 1) Add to your struts.xml file. 2) Add org.springframework.web.context.ContextLoaderListener to your web.xml 3) Make sure that you have the Struts2 Spring plugin installed. 4) Put something along the lines of (The scope prototype is important otherwise Spring creates a singleton rather than a new action on each invocation which is what Struts 2 expects) and that should get Spring instantiating your action classes for you. Although I'm guessing from your response you've already got to that stage. I'm not sure that I understand what you are trying to acheive with If you're trying to inject another class, then the format is on the lines of where you need a setter that matches the name parameter (setClassA(ClassA classA)) in MyAction. The ref value points to another HTH and I haven't completely misunderstood what you are trying to do. Regards -- View this message in context: http://old.nabble.com/spring%2C-struts2%2C-convention-plugin%2C-how-to-%22wire%22-an-action-class-tp28545412p28547552.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 - 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
Re: spring, struts2, convention plugin, how to "wire" an action class
roger, thanks for the steps. i went through each of those steps and made sure my settings/configurations complied. however, i still cannot initialize Action classes using Spring. as an illustration of the problem i am facing, i have created an example that you may download and verify for yourself that this does not work. http://www.box.net/shared/iycamr9uo6 this will download a zip file with an Eclipse project; unzip it. if you have Ant, you simply type in "ant war" and the war file will be created. if you have Tomcat, then drop the war file into the webapps directory (assuming you have Tomcat 6.0). if you go to http://localhost:8080/myapp/, you will see four lines displayed. String from Action: default boolean from Action: false String from Service: overwritten boolean from Service: true The first and second lines confirm that the String and boolean values are not injected into the Action class. The third and fourth lines confirm that the String and boolean values are injected into the service class. thanks. On Thu, May 13, 2010 at 9:32 AM, RogerV wrote: > > > > Jake Vang wrote: >> >>> If you want Spring to create your action class (as opposed to Struts >>> creating them) then you need to define your action in the >>> applicationContext.xml file. >> >> how do you do that? here's a couple of ways i have tried that do NOT work. >> > > 1) Add value="org.apache.struts2.spring.StrutsSpringObjectFactory" /> to your > struts.xml file. > > 2) Add > > org.springframework.web.context.ContextLoaderListener > > > to your web.xml > > 3) Make sure that you have the Struts2 Spring plugin installed. > > 4) Put something along the lines of > scope="prototype"/> (The scope prototype is important otherwise Spring > creates a singleton rather than a new action on each invocation which is > what Struts 2 expects) > > and that should get Spring instantiating your action classes for you. > > Although I'm guessing from your response you've already got to that stage. > > I'm not sure that I understand what you are trying to acheive with > > > > > > If you're trying to inject another class, then the format is on the lines of > > > > > > where you need a setter that matches the name parameter (setClassA(ClassA > classA)) in MyAction. The ref value points to another class="com.services.classA"/> > > HTH and I haven't completely misunderstood what you are trying to do. > > Regards > > > -- > View this message in context: > http://old.nabble.com/spring%2C-struts2%2C-convention-plugin%2C-how-to-%22wire%22-an-action-class-tp28545412p28547552.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 > > - To unsubscribe, e-mail: user-unsubscr...@struts.apache.org For additional commands, e-mail: user-h...@struts.apache.org
override applicationresources.properties file for different logins
i am using a factory class to override Application resources.properties file,but my problem is for different users i create different properties file,i identified which property for user is only userlogins. i searched in google to find code use.This factory class is object created in deployment stage,but no the user name at that time after each class get Message() to override.how to load different properties file for userlogins.please find solution -- View this message in context: http://old.nabble.com/override-applicationresources.properties-file-for-different-logins-tp28549246p28549246.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
RE: struts-blank-1.3.10.war has memory leak.
Hey, I know this doesn't give you a direct answer. But I found this article quite interesting on the topic of undeploying an application and classes being left loaded, which in turn leaves the classloader. http://blogs.sun.com/fkieviet/entry/classloader_leaks_the_dreaded_java -Original Message- From: Mark Shifman [mailto:mark.shif...@yale.edu] Sent: 13 May 2010 16:02 To: Struts Users Mailing List Subject: struts-blank-1.3.10.war has memory leak. Hi: I have been trying to track down a memory leak in my struts 1.3.10 web app. I am using tomcat 6.0.26 which has a leak detector button in the manager app. After basically gutting my app to a start up page, it occurred to me that I should just see if the struts-blank web app has a memory leak. Well, when I deploy and undeploy the struts-blank web app and check for memory leaks, it has a memory leak. If I do this a couple of times, take a heap dump and use eclipse mat (memory analysis tool) plug in, I see several WebAppClassLoaders. When I look for duplicate classes I see a bunch of org.apache.commons.beanutils classes in these WebAppClassLoaders. I can't really go any farther in characterizing the leak since I don't understand enough about classloaders. This seems like a bug to me. Any ideas would be appreciated? mas - 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
struts-blank-1.3.10.war has memory leak.
Hi: I have been trying to track down a memory leak in my struts 1.3.10 web app. I am using tomcat 6.0.26 which has a leak detector button in the manager app. After basically gutting my app to a start up page, it occurred to me that I should just see if the struts-blank web app has a memory leak. Well, when I deploy and undeploy the struts-blank web app and check for memory leaks, it has a memory leak. If I do this a couple of times, take a heap dump and use eclipse mat (memory analysis tool) plug in, I see several WebAppClassLoaders. When I look for duplicate classes I see a bunch of org.apache.commons.beanutils classes in these WebAppClassLoaders. I can't really go any farther in characterizing the leak since I don't understand enough about classloaders. This seems like a bug to me. Any ideas would be appreciated? mas - To unsubscribe, e-mail: user-unsubscr...@struts.apache.org For additional commands, e-mail: user-h...@struts.apache.org
Re: Some Spring/Struts questions
On 5/13/10 7:10 AM, Andy Law wrote: Following up on that thought process, if I use an interceptor then is there any difference/tradeoff/efficiency gain or loss from stuffing the object in question onto the Value Stack instead of dropping it into the request or the session? I guess that "explicitness" is what you gain from the request/session route? You want to be able to directly address it rather than having to search through the value stack for it (and make other things search this bean in case of unintended conflicts), so while I wouldn't put it "on" the value stack, if you put it in the name-based hashmap that lives along side the stack you're good. (Meaning use the ValueStack set() method instead of push().) (And no, I don't have a reason to suggest OGNL over normal Request scope, or vice-versa.) -Dale - To unsubscribe, e-mail: user-unsubscr...@struts.apache.org For additional commands, e-mail: user-h...@struts.apache.org
Re: spring, struts2, convention plugin, how to "wire" an action class
Jake Vang wrote: > >> If you want Spring to create your action class (as opposed to Struts >> creating them) then you need to define your action in the >> applicationContext.xml file. > > how do you do that? here's a couple of ways i have tried that do NOT work. > 1) Add to your struts.xml file. 2) Add org.springframework.web.context.ContextLoaderListener to your web.xml 3) Make sure that you have the Struts2 Spring plugin installed. 4) Put something along the lines of (The scope prototype is important otherwise Spring creates a singleton rather than a new action on each invocation which is what Struts 2 expects) and that should get Spring instantiating your action classes for you. Although I'm guessing from your response you've already got to that stage. I'm not sure that I understand what you are trying to acheive with If you're trying to inject another class, then the format is on the lines of where you need a setter that matches the name parameter (setClassA(ClassA classA)) in MyAction. The ref value points to another HTH and I haven't completely misunderstood what you are trying to do. Regards -- View this message in context: http://old.nabble.com/spring%2C-struts2%2C-convention-plugin%2C-how-to-%22wire%22-an-action-class-tp28545412p28547552.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
Re: spring, struts2, convention plugin, how to "wire" an action class
yes, i read the documentation for that before posting here too. it says to "simply" drop in the struts2-spring-plugin-.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 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 wrote: >> >>> >>> Ahh hmm. >>> >>> You can use the autowired, You just have to declare you stuff in the >>> spring xml. E.g. >>> >>> >> >>> 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 >>> 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 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 > 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, >> >> >> >> that's it; you don't have to do anything else. you don't even
Re: spring, struts2, convention plugin, how to "wire" an action class
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 wrote: Ahh hmm. You can use the autowired, You just have to declare you stuff in the spring xml. E.g. 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 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 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 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, 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 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
Re: spring, struts2, convention plugin, how to "wire" an action class
thanks. example please? (when you have time). On Thu, May 13, 2010 at 6:52 AM, James Cook wrote: > Ahh hmm. > > You can use the autowired, You just have to declare you stuff in the spring > xml. E.g. > > > 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 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 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 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, 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 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 > Subj
Re: spring, struts2, convention plugin, how to "wire" an action class
> If you want Spring to create your action class (as opposed to Struts > creating them) then you need to define your action in the > applicationContext.xml file. how do you do that? here's a couple of ways i have tried that do NOT work. 1. (normal, naive way that works for defining services) 2. (in this case, we do not use the id attribute, but the name attribute) i've also tried configuring struts.properties to have the ObjectFactory use "spring" and this does not help. - To unsubscribe, e-mail: user-unsubscr...@struts.apache.org For additional commands, e-mail: user-h...@struts.apache.org
RE: spring, struts2, convention plugin, how to "wire" an action class
James Cook-13 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? > If you want Spring to create your action class (as opposed to Struts creating them) then you need to define your action in the applicationContext.xml file. Regards -- View this message in context: http://old.nabble.com/spring%2C-struts2%2C-convention-plugin%2C-how-to-%22wire%22-an-action-class-tp28545412p28546598.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
Re: Some Spring/Struts questions
Wes Wannemacher wrote: > > On Wed, May 12, 2010 at 10:42 AM, Dale Newfield wrote: >> >> That all sounds reasonable, except the part about putting it in the >> session >> instead of the request. If there's no compelling reason to store >> something >> in the session, I think that it should be avoided. If you're using an >> interceptor that's going to be doing this injection for each request >> anyway, >> you might as well store it in request scope. >> >> If you're storing it in the session, and the bean doesn't change much >> (and >> can't get stale), the interceptor might as well at least check to see if >> it's already present and act as a no-op in that case. >> > > > Good point, Dale... I didn't read the OP close enough and was being lazy. > > -Wes > > Thanks for all the replies so far folks. Following up on that thought process, if I use an interceptor then is there any difference/tradeoff/efficiency gain or loss from stuffing the object in question onto the Value Stack instead of dropping it into the request or the session? I guess that "explicitness" is what you gain from the request/session route? Later, Andy -- View this message in context: http://old.nabble.com/Some-Spring-Struts-questions-tp28533505p28546199.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
RE: spring, struts2, convention plugin, how to "wire" an action class
Ahh hmm. You can use the autowired, You just have to declare you stuff in the spring xml. E.g. 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 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 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 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, >>> >>> >>> >>> 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 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
Re: spring, struts2, convention plugin, how to "wire" an action class
yes. precisely. On Thu, May 13, 2010 at 6:41 AM, James Cook 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 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 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, >>> >>> >>> >>> 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 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
RE: spring, struts2, convention plugin, how to "wire" an action class
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 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 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, >> >> >> >> 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 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 depen
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 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 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, >> >> >> >> 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 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/con
RE: spring, struts2, convention plugin, how to "wire" an action class
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 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, > > > > 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 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" %> >> >> Test Spring Wiring >> >> >> >> >> >> 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. >> >> ... >> > class="org.springframework.beans.factory.config.PropertyPlaceholderConfi >> gurer"> >> > value="WEB-INF/applicationContext.properties"/> >> >> ... >> >> >> >> >> My /webapp/WEB-INF/applicationContext.properties file then has this >> content. >> >> message=dependency inject success >> >> when i start up tomcat 6,
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 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, > > > > 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 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" %> >> >> Test Spring Wiring >> >> >> >> >> >> 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. >> >> ... >> > class="org.springframework.beans.factory.config.PropertyPlaceholderConfi >> gurer"> >> > value="WEB-INF/applicationContext.properties"/> >> >> ... >> >> >> >> >> 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? >> >> ---
Re: spring, struts2, convention plugin, how to "wire" an action class
by the way, which package is the @Autowired annotation in? using eclipse and code assist, i can't get it to show up. is it in some other jar file (it's not in the spring-core-x.jar)? On Thu, May 13, 2010 at 5:44 AM, James Cook 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" %> > > Test Spring Wiring > > > > > > 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. > > ... > class="org.springframework.beans.factory.config.PropertyPlaceholderConfi > gurer"> > value="WEB-INF/applicationContext.properties"/> > > ... > > > > > 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
RE: spring, struts2, convention plugin, how to "wire" an action class
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, 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 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" %> > > Test Spring Wiring > > > > > > 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. > > ... > class="org.springframework.beans.factory.config.PropertyPlaceholderConfi > gurer"> > value="WEB-INF/applicationContext.properties"/> > > ... > > > > > 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
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, 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 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" %> > > Test Spring Wiring > > > > > > 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. > > ... > class="org.springframework.beans.factory.config.PropertyPlaceholderConfi > gurer"> > value="WEB-INF/applicationContext.properties"/> > > ... > > > > > 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
RE: spring, struts2, convention plugin, how to "wire" an action class
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" %> Test Spring Wiring 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. ... ... 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
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" %> Test Spring Wiring 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. ... ... 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