Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    [Struts2] - Redirect Action

    Ciao,
    ho necessità, tramite un Interceptor di effettuare una redirect vs un'altra action.

    Struts.xml
    codice:
    ...
    <interceptor name="check" class="it.mypackage.CheckInterceptor"></interceptor>
    ...
    Ogni action è cosi definita:
    codice:
    ...
    <action name="myAction"
                class="it.mypackage.ShowListAction">
                <interceptor-ref name="check" />
                <result name="success">....</result>
            </action>
    ...
    Quando accedo ad una action, tramite l'interceptor verifico alcune condizioni e poi, in base al verificarsi o meno di alcune di queste condizioni, dovrei effettuare una redirect vs un'altra action.

    Potreste darmi indicazioni su come effettuarla senza modificare ogni singolo tag action?
    Ultima modifica di maxstorio1; 10-10-2016 a 12:29

  2. #2
    Credo di aver risolto.

    In sintesi:

    Struts.xml
    codice:
    ...
    <interceptor name="check" class="it.mypackage.CheckInterceptor"></interceptor>
    ...
    
    <action name="myAction" class="it.mypackage.ShowListAction">
        <interceptor-ref name="check" />
        <result name="success">....</result>
    </action>
    
    <action name="actionToCall" class="it.mypackage.MySecondAction">
        <result name="success">....</result>
    </action>
    
    <global-results>
     ...
         <result name="intTest" type="redirectAction">
            <param name="actionName">actionToCall</param>
         </result>
    ...
    </global-results>
    CheckInterceptor.java
    codice:
    public class CheckInterceptor implements Interceptor {
            
        @Override
        public void destroy() {
        }
    
        @Override
        public void init() {
        }
    
        @Override
        public String intercept(ActionInvocation invocation) throws Exception {
            try {
    
                // se testToVerify == true -> viene invocata la action "actionToCall"
                if (testToVerify){
                    return "intTest"; 
                } 
                
                // else 
                return invocation.invoke();
            } catch (Exception e) {
                logger.error("Error", e);
                throw e;
            }
        }
    }

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.