我创建了自己的拦截器,MyInterceptor
如下:
public class MyInterceptor extends MethodFilterInterceptor
{
String inv=null;
@Override
protected String doIntercept(ActionInvocation invocation)
{
System.out.println("MyInterceptor fired");
try
{
inv=invocation.invoke();
}
catch (Exception e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
return inv;
}
}
我的动作课是这样的:
public class MyStruts2Class extends ActionSupport implements Preparable
{
@Override
public void prepare()
{
System.out.println("HI Prepare");
}
public String execute()
{
System.out.println("Hi Execute");
return "success";
}
}
...我struts.xml
是这样的:
<struts>
<package name="default" extends="struts-default">
<interceptors>
<interceptor name="myIntercept" class="org.sagar.intercetors.MyInterceptor"/> </interceptors>
<action name="defaultStrutsAction" class="org.sagar.struts.MyStruts2Class" method="execute">
<interceptor-ref name="myIntercept"/> <result name="success">success.jsp</result>
</action>
</struts>
我的问题是当我触发我的defaultStrutsAction
类时,MyInterceptor
运行良好,但prepare
Action 类中的方法没有被调用,因为我已经实现了Preparable
接口。
如果我省略这一行:
<interceptor-ref name="myIntercept"/>
... 在 中, Action 类中struts.xml
的方法运行良好。prepare
我是新来的Struts2
,但无法弄清楚这里有什么问题。