[ 
https://issues.apache.org/struts/browse/WW-3221?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Musachy Barroso resolved WW-3221.
---------------------------------

    Resolution: Not A Problem

There are only two ways to get access to the context, one is using @Inject as 
you mentioned, the other, which I would recommend is to use
ServletActionContext.getServletContex()

> ServletContextAware interface ignored for custom ActionMapper
> -------------------------------------------------------------
>
>                 Key: WW-3221
>                 URL: https://issues.apache.org/struts/browse/WW-3221
>             Project: Struts 2
>          Issue Type: Improvement
>    Affects Versions: 2.1.6
>         Environment: Windows XP, Jetty (under Google App Engine java dev 
> environment).
>            Reporter: Todd Owen
>            Priority: Minor
>
> I am implementing an ActionMapper by extending DefaultActionMapper. I would 
> like to access the ServletContext, where some application-specific 
> configuration is stored. Since the docs for the ServletContextAware interface 
> say that it is: "for components that have a dependence on the Servlet 
> context", I implemented this interface but it's method (setServletContext) is 
> never called. Here is the class:
>       public class RexMapper
>       extends org.apache.struts2.dispatcher.mapper.DefaultActionMapper
>       implements ServletContextAware {        
>               public RexMapper() {
>                       // This constructor *is* called.
>               }
>               @Override
>               public void setServletContext(ServletContext arg0) {
>                       // This method is *not* called.
>               }
>       }
> In struts.xml:
>       <bean type="org.apache.struts2.dispatcher.mapper.ActionMapper" 
> name="rexMapper" class="org.technologyforchange.rex.RexMapper"/>
> I have been able to work around this by using the internal dependency 
> injection framework: I add a javax.servlet.ServletContext parameter to the 
> constructor, and annotate it with @com.opensymphony.xwork2.inject.Inject. 
> However, I understand that developers are encouraged not to rely on the 
> internal injection framework. Therefore, I'm reporting this to JIRA.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to