Struts2 为什么我的自定义拦截器不工作

Struts2 为什么我的自定义拦截器不工作,struts2,interceptor,interceptorstack,Struts2,Interceptor,Interceptorstack,我定义了一个用于记录时间的自定义拦截器,但它不起作用。 以下是我的自定义拦截器代码: public class TimeConsumedInterceptor extends AbstractInterceptor { /* * {@inheritDoc} */ @Override public String intercept(ActionInvocation invocation) throws Exception { long start = System.currentTi

我定义了一个用于记录时间的自定义拦截器,但它不起作用。 以下是我的自定义拦截器代码:

public class TimeConsumedInterceptor extends AbstractInterceptor
{

/*
 * {@inheritDoc}
 */
@Override
public String intercept(ActionInvocation invocation) throws Exception
{
    long start = System.currentTimeMillis();
    String result = invocation.invoke();
    long end = System.currentTimeMillis();
    System.out.println("time consumed: " + (end - start));
    return result;
}

}
我定义了一个新的xml文件:ecs default.xml(它直接位于
src
package下)


error.jsp
和struts.xml文件:

<struts>
<include file="ecs-default.xml"></include>
  <!-- define two empty package, / and /manager, extends ecs-default package -->
<package name="default" namespace="/" extends="ecs-default">
</package>

<package name="manager" namespace="/manager" extends="ecs-default">
</package>

</struts>


我调试代码,在
com.opensymphony.xwork2.DefaultActionInvocation
类中,
List interceptorList=new ArrayList(proxy.getConfig().getInterceptors())
proxy.getConfig().getInterceptors()
返回struts-default.xml中定义的defaultStack的18个拦截器,我的ecsTimer拦截器不在其中。那为什么呢?我的配置有问题吗?谢谢。

正在为每个操作执行创建
DefaultActionInvocation
。您只需要执行使用自定义拦截器配置的操作,就可以在调试中看到它


顺便说一句,已经有
计时器
拦截器可以满足您的需要。

我使用struts注释,我只是按照您说的做,
@ParentPackage(value=“json default”)@Namespace(value=“/manager”)@InterceptorRef(value=“ecsStack”)公共类UserSearchAction扩展了ActionSupport
。。。,现在它报告了一个错误:找不到引用名ecsStack-[未知位置]引用的拦截器类。那么如何解决呢?这个拦截器类确实存在。我解决了它,请参阅。我认为struts2注释比xml配置更复杂。非常感谢。
<struts>
<include file="ecs-default.xml"></include>
  <!-- define two empty package, / and /manager, extends ecs-default package -->
<package name="default" namespace="/" extends="ecs-default">
</package>

<package name="manager" namespace="/manager" extends="ecs-default">
</package>

</struts>