2014-01-02 3 views
2

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

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

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

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

+1

IMO кто downvoted это было неправильно Хотя эта информация не обширна, это было consise и вполне достаточно.. – mmalmeida

ответ

1

В Struts вы можете определить различные стеки перехватчиков и apply different stacks to different actions.

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

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

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

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