Перехватчик Struts2 на основе определенных шаблонов URL

Я хочу использовать перехватчик struts2 для всех действий, которые начинаются с определенного имени:

Скажем, я хочу перехватить все действия, которые начинаются с Module. Могу ли я каким-либо образом настроить перехватчик, как это делает Spring AOP, например: com.acme.web.actions.Module*

Я не могу использовать АОП, потому что он ломает все параметры страницы (как я думаю, там нет способа вызвать перехватчик параметров).

Это возможно?


person Aneesh Vijendran    schedule 02.01.2014    source источник
comment
ИМО, кто бы ни проголосовал за это, был неправ. Хотя информация не является обширной, она была сжатой и совершенно адекватной.   -  person mmalmeida    schedule 02.01.2014


Ответы (1)


В Struts вы можете определять разные стеки перехватчиков и применять разные стеки к разным действиям. .

Итак, в вашей ситуации вы можете определить другой стек следующим образом:

<interceptors>
  <interceptor name="myInterceptor" class="com.company.security.MyInterceptor"/>
  <interceptor-stack name="myStack">
    <interceptor-ref name="myInterceptor"/>
    <interceptor-ref name="defaultStack"/>
  </interceptor-stack>
</interceptors>

И, используя сопоставления с подстановочными знаками, приведенная ниже конфигурация по существу «сопоставить все действия с именем ModuleSomething с классом com.acme.web.actions.ModuleSomething и применить к нему myStack перехватчиков:

<action name="Module*" class="com.acme.web.actions.Module{1}">
  <result>{1}.jsp</result>
   <interceptor-ref name="myStack"/>
</action>
person mmalmeida    schedule 02.01.2014