2009-02-11 5 views
5

Ho installato il progetto Web Tools per Eclipse versione 3.4. Ho cercato di fare in modo che il refactoring funzionasse come pensavo e non ha avuto successo.Il progetto Eclipse Web Tools gestisce il refactoring all'interno dei JSP?

Ho un progetto Java che contiene le classi Java per il jar che viene inserito nel/WEB-INF/lib per un sito web. Un altro progetto (un progetto Web dinamico) ha i file JSP per lo stesso sito. Il progetto Web dinamico viene impostato con il progetto Java come progetto richiesto nel percorso di generazione. Ho anche impostato l'opzione Referenze progetto per il progetto Web dinamico per fare riferimento a Progetto Java.

Se utilizzo il refactoring per modificare il nome di un metodo in una delle classi Java, mi aspetto che i riferimenti a tale metodo nei JSP vengano rinominati. Ma non funziona. I riferimenti nel progetto Java che contiene la classe e altri progetti Java che utilizzano quella classe hanno i riferimenti modificati sono refactored, ma non i riferimenti al metodo all'interno dei JSP.

L'ho lavorato per giorni, provando diverse versioni di Eclipse e WTP. Cancellando tutti i miei progetti e file e impostandoli di nuovo. Niente fa differenza.

Funziona per qualcun altro? C'è qualcosa di speciale che ho bisogno di impostare per farlo funzionare?

risposta

1

spiace, ma questo non risponde direttamente alla tua domanda ma ciononostante risolve il tuo problema ... forse aiuta, altrimenti ignora:

Come suggerito da b opaco, non dovresti inserire il codice java in un jsp. Invece 'semplicemente' usare i tag. Se stai usando il standard tag library, c'è quasi tutto quello che ti serve. Per cose che devi gestire da solo, è molto semplice scrivere i tuoi tag una volta che sai cosa sono i tag.

Con questo trucco otterrete una migliore architettura di applicazione (vista), opportunità di test (spero vi piacciano), rispettate il principio DRY (non ripetete voi stessi) e inserite tutto il codice Java nei file .java, quindi che saranno facilmente prelevati dallo strumento.

C'è anche un'opzione per web.xml per forzare la disattivazione degli script, lasciando che i tag funzionino, ma se hai già un enorme investimento in jps con script, questo potrebbe non essere quello che ti serve ...

<jsp-config> 
    <jsp-property-group> 
    <url-pattern>*.jsp</url-pattern> 
    <scripting-invalid>true</scripting-invalid> 
    </jsp-property-group> 
</jsp-config> 

Un'altra risposta a una domanda che non ha chiesto è che IntelliJ Idea gestisce lo scenario che si parla molto bene (anche se sto usando eclissare me stesso di giorno in giorno, questo è una delle differenze tra entrambi IDE)

+0

Jakarta Taglibs è stato ritirato nel 2010, i loro tagli sono stati ritirati e un nuovo Taglib Esteso creato. I Taglibs Standard e RDC sono passati a Tomcat. [collegamento] (https://tomcat.apache.org/taglibs/) –

+0

grazie per la notifica e il collegamento - corretto nell'articolo che è stato inizialmente scritto prima di questo ritiro –

0

Forse non sto capendo correttamente, ma sembra che tu stia mettendo le classi in un barattolo o in una guerra prima che tu stia cercando di fare il refactoring. Il refactoring è per il progetto attuale, non per qualcosa nel tuo percorso di costruzione.

Se ho frainteso la tua domanda, mi scuso.

+0

Siamo spiacenti per l'equivoco. No, non sto mettendo le classi in un barattolo fino alla distribuzione per i test. Il refactoring funziona per me attraverso i progetti, purché i progetti siano progetti Java. –

+0

Ho spostato la mia risposta a wiki perché non ha aiutato. – WolfmanDragon

2

Le mie esperienze con il modo in cui WTP (o qualsiasi altro sapore di Eclipse) tratta il codice Java nei blocchi di scriptlet in un file JSP è sempre stato orribile: non funziona mai bene o come ci si aspetta. Ho visto Eclipse aggiungere le dichiarazioni <jsp:import> nel mezzo del file JSP e fare tutti gli altri tipi di formattazione strana.

Il mio unico consiglio è di stare lontano dalla modifica di un codice in un JSP all'interno di Eclipse.

(Il mio altro pezzo di consiglio è di non inserire codice Java direttamente in un file JSP, e passare a un'architettura MVC, ma questo è un argomento per un altro giorno ...)

2

Si prega di votare per questo possibile here. O creare una nuova richiesta di funzionalità più specifica. In questo link puoi vedere che ci sono molti problemi relativi al refactoring e al JSP, ma solo poche persone sono consapevoli del fatto che se votano per loro, è molto più probabile che vengano implementati nella prossima versione di Eclipse.

Copiare e correggere il collegamento prima di utilizzarlo, perché viene danneggiato. Il "+" diventa "% 2B". Ecco il link corretto: https://bugs.eclipse.org/bugs/buglist.cgi?quicksearch=jsp+refactor

+0

+1 per la segnalazione di bug ;-) – GingerHead

Problemi correlati