Nice - I'll take a closer look. That seems like a decent solution
On Sat, Sep 30, 2017 at 4:22 AM, Yasser Zamani <yasser.zam...@live.com> wrote: > Hello Burton, > > I tested following and seems works but I did not tested if objects are > equal by reference (you may get different objects e.g. when scope is > prototype): > > ```java > public class MYStrutsPrepareFilter implements Filter { > > > public void doFilter(ServletRequest req, ServletResponse res, > FilterChain chain) > throws IOException, ServletException { > > ActionContext actionContext = ActionContext.getContext(); > if(null != actionContext) { > ValueStack stack = actionContext.getValueStack(); > StrutsSpringObjectFactory objectFactory = > (StrutsSpringObjectFactory) > actionContext.getInstance(ObjectFactory.class); > try { > stack.setValue("#application[' > MYSpringObject']", > objectFactory.buildBean("myBeanName",null)); > } catch (Exception e) { > e.printStackTrace(); > } > } > chain.doFilter(req, res); > } > } > ``` > > ```xml > <filter> > <filter-name>struts2prepare</filter-name> > <filter-class>...StrutsPrepareFilter</filter-class> > </filter> > <filter> > <filter-name>MYStrutsPrepareFilter</filter-name> > <filter-class>MYStrutsPrepareFilter</filter-class> > </filter> > <filter> > <filter-name>struts2execute</filter-name> > <filter-class>...StrutsExecuteFilter</filter-class> > </filter> > <filter-mapping> > <filter-name>struts2prepare</filter-name> > <url-pattern>/*</url-pattern> > </filter-mapping> > <filter-mapping> > <filter-name>MYStrutsPrepareFilter</filter-name> > <url-pattern>/*</url-pattern> > </filter-mapping> > <filter-mapping> > <filter-name>struts2execute</filter-name> > <url-pattern>/*</url-pattern> > </filter-mapping> > ``` > > ```jsp > <s:property value="#application.MYSpringObject.myProperty" /> > ``` > > Hope this helps! > Yasser. > > On 9/30/2017 1:29 AM, Burton Rhodes wrote: > > I have all of these settings in place, but your comments spurred the idea > > to have a "BaseAction" class where I autowire my object > > (MyApplicationSettings.java) and then extend all of my Actions from this > > class. > > > > Just for my info though... My original line of thinking was to be able to > > access the object with the following: > > > > Map application = (Map) ActionContext.getContext().get("application"); > > application.get("myApplicationSettings"); > > ---or--- > > <s:property value="#application.myApplicatoinSettings" /> > > > > I just couldn't figure out a way to put the object in the struts > > application scope within a listener during startup. Does that make > sense? > > > > On Fri, Sep 29, 2017 at 11:50 AM, Adam Brin <ab...@digitalantiquity.org> > > wrote: > > > >> it’s a mixture of things: > >> > >> * Struts.xml should be setup to know about spring: > >> <constant name="struts.objectFactory" > >> value="org.apache.struts2.spring.StrutsSpringObjectFactory" /> > >> <constant name="struts.objectFactory. > spring.autoWire.alwaysRespect" > >> value="true" /> > >> <constant name="struts.objectFactory.spring.autoWire" > value="name" /> > >> > >> * register the appropriate application listeners > >> > >> * add the @Scope variables to controllers > >> > >> -- > >> _________________________________________________________ > >> Adam Brin > >> Director of Technology, Digital Antiquity > >> 480.965.1278 > >> > >>> On Sep 29, 2017, at 9:03 AM, Burton Rhodes <burtonrho...@gmail.com> > >> wrote: > >>> > >>> How do you put a Spring object into the Struts application scope Map on > >>> startup of a web application? I have 2 listeners that I thought would > be > >>> the usual suspects, but have not had success yet. > >>> > >>> I have a ServletContextListener class but on the > >>> contextInitialized(ServletContextEvent event) method, my spring bean > has > >>> not been created yet. > >>> > >>> Secondly, I have a Spring "ApplicationListener", but in the > >>> onApplicationEvent(ApplicationEvent event) method, > >>> "ServletActionContext.getContext()" is null. How is this > traditionally > >>> accomplished? > >>> > >>> Thanks! > >>> Burton > >> > >> > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: user-unsubscr...@struts.apache.org > For additional commands, e-mail: user-h...@struts.apache.org >