Использование расширенного перехватчика в Struts2 не работает с параметрами действия - PullRequest
0 голосов
/ 18 июня 2010

У меня есть пакет по умолчанию с настройкой перехватчика, и я расширяю этот пакет в другой и вызываю тот же перехватчик

<action name="availability**">
            <param name="subTab">availability</param>
            <interceptor-ref name="tabStack"/>          
            <result>/WEB-INF/jsp/index.jsp?include=visibilit/availability.jsp</result>                      
        </action>

Проблема в том, что параметр не читается внутри моегокод перехватчика:

Map params = invocation.getInvocationContext().getParameters();
subTab = params.get("subTab").toString(); //NULL exception

Есть идеи, как передать параметры расширенным перехватчикам?

Спасибо!

Ответы [ 2 ]

0 голосов
/ 18 июня 2010

Метод getParameters (), который вы вызываете, возвращает только параметры из HTTP-запроса.Параметры, установленные в Struts.xml с помощью, называются «статическими параметрами», и вы можете получить к ним доступ (в методе intercept ()) следующим образом:

ActionConfig config = invocation.getProxy().getConfig();
Map<String, String> parameters = config.getParams();
String subTab = params.get("subTab");

Источник: StaticParametersInterceptor.java

0 голосов
/ 18 июня 2010

Можете ли вы попробовать этот синтаксис

<action name="availability**">
<interceptor-ref name="tabStack">
     <param name="subTab">availability</param>
</interceptor-ref>
</action>

Я не уверен, но, возможно, это будет работать

...