2011-09-26 6 views
8

Il seguente esempio: Ho una superclasse e una sottoclasse per un'azione di puntoni. La superclasse definisce @Results e la sottoclasse deve definire ulteriori voci specifiche @Result. Per esempio:Do Struts2 Le annotazioni dei risultati sovrascrivono o aggiungono ai valori definiti della superclasse?

@Results({ 
    @Result(name=BaseAction.ERROR, location="/WEB-INF/jsp/error.jsp") 
}) 
public abstract class BaseAction extends ActionSupport implements ServletRequestAware { 
    ... 
} 

..e una sottoclasse

@Results({ 
    @Result(name=BaseAction.INDEX, location="/WEB-INF/jsp/reporting/index.jsp") 
}) 
public class ReportAction extends BaseAction { 
    ... 
} 

La mia domanda è, fa un esempio di ReportAction solo hanno la @Result di INDEX definito, oppure contiene anche tutte le voci definite @Result in qualsiasi se si tratta di superclassi. Il mio ReportAction è a conoscenza della posizione impostata per BaseAction.ERROR ??

Grazie, Martin

+2

Sì, hai fatto la cosa giusta. 'ReportAction' conterrà entrambi i risultati' ERRORE' e 'INDICE'. Puoi dare un'occhiata a ** [THIS answer] (http://stackoverflow.com/questions/6765810/struts2-convention-plugin-results-using-inheritance/6770638#6770638) **. E perché non controlli i 'risultati mapping 'di ** [Config Browser Plugin] (http://struts.apache.org/2.2.3.1/docs/config-browser-plugin.html) **. – lschin

risposta

1

Sì, la classe ReportAction avrà sia BaseAction.INDEX che BaseAction.ERROR.

In questo caso si applica anche la regola generale di super classe o sottoclasse. Se non trovi qualcosa nella sottoclasse, andrà a esaminare la super classe.

Nel tuo caso BaseAction.ERROR non trovato nella sottoclasse andrà a cercare nella superclasse.

0

Avrà entrambi. È possibile verificare con il plug-in del browser di configurazione.

0

Sarà in grado di identificare sia BaseAction.INDEX che BaseAction.ERROR.

Se il risultato è disponibile nella sottoclasse (nel tuo caso classe ReportAction) ne seguirà, altrimenti apparirà nella superclasse (nel tuo caso classe BaseAction).

Problemi correlati