0

我需要从拦截器访问 struts.xml 文件中的 struts.action.extension 值。有什么建议么?

4

2 回答 2

1

我意识到答案可能是针对以前版本的 struts,它在我正在使用的 struts 版本(struts v2.2)中不起作用。以下确实有效,但......

final ActionContext context = actionInvocation.getInvocationContext();    
com.opensymphony.xwork2.util.ValueStack vs=context.getValueStack();
((ActionMapping)vs.getContext().get("struts.actionMapping")).getExtension();

... 其中 ActionMapping 是 org.apache.struts2.dispatcher.mapper.ActionMapping。

认为它可能会帮助某人。

于 2013-01-18T01:34:10.340 回答
0

感谢 Struts 用户列表中的 Musachy Barroso,我在拦截器中添加了以下内容:

/**
 * @param strutsActionExtension the strutsActionExtension to set
 */
@Inject(StrutsConstants.STRUTS_ACTION_EXTENSION) //Note this isn't necessarily supported
public void setStrutsActionExtension(String strutsActionExtension) {
    this.strutsActionExtension = strutsActionExtension;
}

正如 Wes Wannemacher 在同一个列表中指出的那样,这实际上并不支持,但在未来的版本中极不可能发生变化。

于 2009-05-28T14:40:33.973 回答