You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@struts.apache.org by "Musachy Barroso (JIRA)" <ji...@apache.org> on 2009/08/16 19:52:59 UTC
[jira] Resolved: (WW-3221) ServletContextAware interface ignored
for custom ActionMapper
[ 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.