Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/368.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在struts2中配置自定义conversionerrorinterceptor_Struts2_Interceptor_Interceptorstack - Fatal编程技术网

如何在struts2中配置自定义conversionerrorinterceptor

如何在struts2中配置自定义conversionerrorinterceptor,struts2,interceptor,interceptorstack,Struts2,Interceptor,Interceptorstack,我需要覆盖默认的转换消息 因此,我试图为我的应用程序创建一个自定义的转换错误拦截器,该拦截器将被调用,而不是struts默认拦截器 下面提到的是代码 public class MyConversionErrorInterceptor extends ConversionErrorInterceptor { private static final long serialVersionUID = 1L; protected Object getOverrideExpr(ActionInvoca

我需要覆盖默认的转换消息 因此,我试图为我的应用程序创建一个自定义的转换错误拦截器,该拦截器将被调用,而不是struts默认拦截器 下面提到的是代码

public class MyConversionErrorInterceptor extends ConversionErrorInterceptor {

private static final long serialVersionUID = 1L;

protected Object getOverrideExpr(ActionInvocation invocation, Object value) {
    ValueStack stack = invocation.getStack();
    return (String)stack.findValue("myproj.item");
}
protected boolean shouldAddError(String propertyName, Object value) {

    return true;
}}
下面是提到的struts.xml配置

<interceptors >

<interceptor name="conversionError" class="com.celtic.cmvs.webapp.interceptor.MyConversionErrorInterceptor" />

<interceptor-stack name="myDefaultStack">
    <interceptor-ref name="conversionError" />
    <interceptor-ref name="defaultStack"/>
</interceptor-stack>

但它不起作用。
提前谢谢

我看到了一些可能性

  • struts2 conversionError拦截器仍将被调用。如果你想要你的而不是标准的,你需要自己定义整个堆栈,用你的拦截器代替标准的
  • 您可能希望更改自定义拦截器的配置名称,使其与标准拦截器不同。否则,拦截器ref name=“conversionError”可能仍然指向标准拦截器
  • 您需要确保使用了新堆栈。您可以通过将其声明为默认堆栈或在特定操作中引用自定义堆栈来实现这一点
  • 我的博客中有一个关于自定义拦截器的教程,可能会很有用: