2010-11-09 4 views
5

Ho ereditato un progetto JSF sviluppato un anno fa da qualcuno che non funziona più nella mia azienda e il codice è davvero difficile da capire. Molti di essi sembrano essere stati generati automaticamente dall'IDE, in particolare getter e setter di classi. In effetti, ogni campo privato ha associato getter e setter, anche se non sono referenziati in nessuna parte del progetto.
Volevo liberarmi di tutto questo codice inutile prima di provare a capire il progetto, ma dato che si tratta di un progetto JSF, le proprietà dei bean possono essere referenziate in file xhtml e quindi non verranno visualizzate quando si usano i "riferimenti di show" comando.
C'è un modo per sapere quali metodi sono veramente inutili per rimuoverli in sicurezza?C'è un modo per sapere quali proprietà del bean sono referenziate nei file xhtml di un progetto JSF?

Io uso eclissi ma ogni strumento che permetta di farlo sarebbe un grande sollievo!

risposta

1

Non credo che ci sia un modo, a parte una ricerca di .fieldname. Ma ancora più importante: i setter e i getter generati, se si trovano su oggetti di soli dati, non rappresentano un serio ostacolo alla comprensione di un progetto. Quindi puoi saltare quella parte di pulizia.

+0

Ok, mi limiterò alla ricerca del testo ... So che i setter ei getter generati automaticamente non sono un vero ostacolo per capire il progetto, ma ho pensato che avrei potuto rimuovere rapidamente molto codice inutilizzato che è sempre buono. Se devo fare una ricerca di testo per ogni getter per sapere se riesco a rimuoverlo penso che rimanderò questa pulizia. –

1

Penso che sia meglio imparare e giocare con JSF prima di immergersi in un progetto JSF esistente. I getter/setter sono lì solo per ottenere dati da visualizzare nell'output HTML e impostare i parametri di richiesta dall'input del modulo HTML. Per esempio. <h:inputText value="#{bean.foo}" /> nella vista richiede un bean.getFoo() per visualizzare il valore e un bean.setFoo(String value) per impostare il valore inviato. Quindi lasciateli lì e concentrati sui metodi di azione.

Per quanto riguarda gli strumenti, Eclipse non offre strumenti/strutture per questo poiché possono essere richiamati dalla riflessione e non da riferimenti diretti. È quasi impossibile rilevarlo. Almeno, è bene sapere che i setter non vengono mai chiamati per i componenti di sola uscita, come <h:outputText value="#{bean.foo}" /> o per i bean nidificati come <h:inputText value="#{bean.nested.foo}" />. Tuttavia, il setter è obbligatorio ogni volta che il bean nidificato deve essere iniettato come proprietà gestita.

Io stesso nascondo il getter/setter lontano a tutto il fondo della classe. I metodi di azione (almeno, metodi non getter/setter) sono subito dopo il costruttore (i). È anche possibile configurare l'IDE per posizionarli lì durante la fase di autogenerazione.