|
|
| − | En aquest article anem a veure què són els interceptors d'Struts2 mitjançant un exemple. | + | En aquest article anem a veure què són els interceptors d'Struts2 mitjançant un exemple. Anem a afegir '''interceptors''' al projecte que hem realitzat a l'article [[Struts 2: Tiles]]. |
| | | | |
| | | | |
|
|
| | | | |
| | Struts2 proporciona un mecanisme molt potent per a controlar una sol·licitud mitjançant interceptors. Els '''interceptors''' són responsables de la major part del processament de la sol·licitud. S'invoca el controlador abans i després d'invocar l'acció, de manera que es troba entre el controlador i l'acció. Els interceptors realitzen tasques com ara registre, validació, càrrega d'arxius, etc. | | Struts2 proporciona un mecanisme molt potent per a controlar una sol·licitud mitjançant interceptors. Els '''interceptors''' són responsables de la major part del processament de la sol·licitud. S'invoca el controlador abans i després d'invocar l'acció, de manera que es troba entre el controlador i l'acció. Els interceptors realitzen tasques com ara registre, validació, càrrega d'arxius, etc. |
| − | [[Fitxer:struts2-request-cycle.png|center]] | + | [[Fitxer:struts-2-request-cycle.png|center]] |
| | | | |
| | | | |
|
|
| | Per tant els interceptors d'Struts2 eliminen tasques transversals com ara la càrrega de components d'acció i creen una separació més neta en el model MVC. | | Per tant els interceptors d'Struts2 eliminen tasques transversals com ara la càrrega de components d'acció i creen una separació més neta en el model MVC. |
| | | | |
| − | Struts2 ve amb una '''llista predeterminada de interceptors''' ja configurada en l'aplicació al fitxer <span style="color: green;">struts-default.xml</span>. Podem crear els nostres propis interceptors i ''plugins'' en una aplicació web basada en Struts2. | + | Struts2 ve amb una '''llista predeterminada d'interceptors''' ja configurada en l'aplicació al fitxer <span style="color: green;">struts-default.xml</span>. Podem crear els nostres propis interceptors i ''plugins'' en una aplicació web basada en Struts2. |
| | | | |
| | El framework crea un objecte d'''ActionInvocation'' que encapsula l'acció i tots els interceptors configurats per a aquesta acció. Cada interceptor es crida abans de l'acció. Quan es crida l'acció i es genera el resultat, cada interceptor està de nou en ordre invers a com ha estat cridat per realitzar el treball de processament posterior. Els interceptors poden alterar el flux de treball d'una acció, fins i tot es pot evitar l'execució de l'acció. | | El framework crea un objecte d'''ActionInvocation'' que encapsula l'acció i tots els interceptors configurats per a aquesta acció. Cada interceptor es crida abans de l'acció. Quan es crida l'acció i es genera el resultat, cada interceptor està de nou en ordre invers a com ha estat cridat per realitzar el treball de processament posterior. Els interceptors poden alterar el flux de treball d'una acció, fins i tot es pot evitar l'execució de l'acció. |
|
|
| | <interceptors> | | <interceptors> |
| | <interceptor name="mylogging" | | <interceptor name="mylogging" |
| − | class="net.viralpatel.struts2.interceptor.MyLoggingInterceptor"> | + | class="struts2.interceptor.MyLoggingInterceptor"> |
| | </interceptor> | | </interceptor> |
| | <interceptor-stack name="loggingStack"> | | <interceptor-stack name="loggingStack"> |
|
|
| | </pre> | | </pre> |
| | | | |
| | + | == Finalment... == |
| | | | |
| − | == Això és tot amics ==
| + | Si executem la nostra aplicació en Eclipse i veiem els registres de la consola, ens trobarem amb les declaracions de registre que s'imprimeixen al nostre interceptor. |
| | + | [[Fitxer:struts_interceptors.png|center]] |
| | | | |
Exception encountered, of type "Error"