как получить параметры, определенные в URL-адресе действия в Interceptor

Я определил действие в struts.xml следующим образом.

<action name="*/*/execute" class="com.test.project1.abc" method="execute">
        <param name="username">{1}</param>
        <param name="resource">{2}</param>

Как я могу получить значения имени пользователя и ресурса в перехватчике?

Я получил эти значения в классе действий "com.test.project1.abc", используя

ActionContext context = ActionContext.getContext();
Map<String, Object> params = context.getParameters();

Однако вышеперечисленное не дает результатов в перехватчике. Итак, как мне получить параметры в этом случае?


person Sivakami Subbu    schedule 26.05.2020    source источник
comment
Как выглядит ваш стек перехватчиков?   -  person Dave Newton    schedule 26.05.2020
comment
Используйте параметры после имени действия, а не перед ним. Подробности см. в этом ответе.   -  person Roman C    schedule 21.06.2020


Ответы (1)


Вы можете попробовать что-то вроде этого:

public String intercept(ActionInvocation invocation) throws Exception {
    final ActionContext context = invocation.getInvocationContext();
    Map<String,Object> reqParams = (Map<String,Object>)context.get(ActionContext.PARAMETERS);

    /**
    * Your logic
    */

    return invocation.invoke();
}

person Nish    schedule 26.05.2020
comment
но почему ActionContext.getContext().getParameters() возвращает параметры запроса, а не параметры URL-адреса в перехватчике? - person Sivakami Subbu; 26.05.2020
comment
@SivakamiSubbu, не могли бы вы поделиться своим стеком-перехватчиком? - person Nish; 27.05.2020