如何在struts2中配置自定义conversionerrorinterceptor

时间:2011-02-11 15:00:36

标签: struts2 interceptor interceptorstack

我需要覆盖默认转化消息 所以,我试图为我的应用程序创建一个自定义转换错误拦截器,而不是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>

但它不起作用。 提前致谢

1 个答案:

答案 0 :(得分:2)

我看到了一些可能性。

  1. 仍将调用struts2 conversionError拦截器。如果你想要你的而不是标准的,你需要自己定义整个堆栈,用拦截器代替标准的拦截器。
  2. 您可能希望更改自定义拦截器的已配置名称,使其与标准拦截器的名称不同。否则,interceptor-ref name =“conversionError”仍可能指向标准拦截器。
  3. 您需要确保使用新堆栈。您可以通过将其声明为默认堆栈,或通过在特定操作中引用自定义堆栈来实现此目的。
  4. 我的博客中有自定义拦截器的教程可能很有用:http://ddubbya.blogspot.com/2011/01/creating-custom-struts2-interceptors.html