как настроить кастомный конвертер erinterinterceptor в struts2 - PullRequest
0 голосов
/ 11 февраля 2011

Мне нужно переопределить конверсионные сообщения по умолчанию Итак, я пытаюсь создать собственный перехватчик ошибок преобразования для моего приложения, который будет вызываться вместо перехватчика по умолчанию для 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 Ответ

2 голосов
/ 11 февраля 2011

Я вижу несколько возможностей.

  1. Перехватчик struts2 ConversionError все еще будет вызываться. Если вы хотите свой собственный вместо стандартного, вам нужно определить весь стек самостоятельно, с вашим перехватчиком вместо стандартного.
  2. Возможно, вы захотите изменить настроенное имя пользовательского перехватчика, чтобы оно не совпадало со стандартным. В противном случае interceptor-ref name = "ConversionError" может по-прежнему указывать на стандартный перехватчик.
  3. Вы должны убедиться, что ваш новый стек используется. Это можно сделать, объявив его стеком по умолчанию или сославшись на пользовательский стек внутри определенного действия.

У меня есть учебник по пользовательским перехватчикам в моем блоге, который может быть полезен: http://ddubbya.blogspot.com/2011/01/creating-custom-struts2-interceptors.html

...