2012-12-13 20 views

risposta

34
<global-forwards> 

consideri state convalidando la password nome utente per gli URL diversi, come update.do, insert.do delete.do ecc Se si tratta di un utente valido è necessario procedere alla neccesary action.if non in avanti per il login page.See le mappature di seguito

<action-mappings>   
    <action path="/insert" type="controller.Insert"> 
     <forward name="success" path="/insert.jsp"/> 
     <forward name="failure" path="/login.jsp"/> 
    </action>  
    <action path="/update" type="controller.Update"> 
     <forward name="success" path="/update.jsp"/> 
     <forward name="failure" path="/login.jsp"/> 
    </action> 
    <action path="/delete" type="controller.Delete"> 
     <forward name="success" path="/delete.jsp"/> 
     <forward name="failure" path="/login.jsp"/> 
    </action>   
</action-mappings> 

Invece di ripetere il <forward name="failure" path="/login.jsp"/> è possibile dichiarare questo <global-forwards> come qui di seguito

<global-forwards> 
    <forward name="failure" path="/login.jsp"/> 
</global-forwards> 

Ora è possibile remo ve lo <forward name="failure" path="/login.jsp"/> nei mapping di azioni.


<global-exceptions> 

Se si riceve eccezione java.Io anziché gestire manualmente per ogni si può dichiarare globalmente come di seguito.

<global-exceptions> 
    <exception type="java.io.IOException" path="/pages/error.jsp"/> 
</global-exceptions> 

Spero che questo chiarisca il problema.

+0

Grazie uomo spiegazione molto buona, ma l'ho trovato un po 'lungo. – user1900662

+0

grazie per la spiegazione, – Apache

+0

grazie per la spiegazione, diciamo se c'è la pagina di errore HTTP 500 e necessario inoltrare alla pagina di accesso, , come si può fare, grazie – Apache

3

Se si parla di Struts 1, global-exceptions sono ExceptionHandlers che si occupa di alcune Exception per tutte le azioni, quindi non è necessario dichiararlo per azione ed evitare la duplicazione.

Global-forwards hanno la stessa idea. Se hai in avanti con lo stesso percorso in diverse azioni, puoi evitare la duplicazione dichiarando solo uno global-forward e tutte le azioni possono usarlo. Con global-forwards puoi anche evitare URL hard-coded nei tuoi jsps, ad esempio, potresti dichiarare un forward globale come <forward name="loginLink" path="/login" /> e poi nel tuo jsp <html:link forward="loginLink">Login</html:link>.

Problemi correlati