2009-02-11 3 views
5

Ich habe das Web Tools-Projekt für Eclipse Version 3.4 installiert. Ich habe versucht, das Refactoring so zu gestalten, wie ich es für möglich halte und habe keinen Erfolg gehabt.Behandelt das Webtools-Projekt von Eclipse das Refactoring in JSPs?

Ich habe ein Java-Projekt, das die Java-Klassen für das Jar enthält, das für eine Website in das Verzeichnis/WEB-INF/lib gestellt wird. Ein anderes Projekt (ein dynamisches Webprojekt) enthält die JSP-Dateien für dieselbe Site. Das Dynamic Web-Projekt wird mit dem Java-Projekt als erforderliches Projekt im Erstellungspfad eingerichtet. Ich habe auch die Option Projektreferenzen für das Dynamic Web-Projekt festgelegt, um auf das Java-Projekt zu verweisen.

Wenn ich Refactoring verwenden, um einen Methodennamen in einer der Java-Klassen zu ändern, würde ich erwarten, dass Verweise auf diese Methode in den JSPs umbenannt würden. Aber es funktioniert nicht. Verweise in dem Java-Projekt, das die Klasse und andere Java-Projekte enthält, die diese Klasse verwenden, haben die geänderten Verweise refaktoriert, aber keine Verweise auf die Methode in den JSPs.

Ich habe seit Tagen damit beschäftigt, verschiedene Versionen von Eclipse und WTP auszuprobieren. Alle meine Projekte und Dateien löschen und neu einrichten. Nichts macht einen Unterschied.

Funktioniert das für jemand anderen? Gibt es etwas Besonderes, das ich einstellen muss, damit das funktioniert?

Antwort

1

Sorry, das antwortet nicht direkt auf Ihre Frage, aber trotzdem Ihr Problem anspricht ... vielleicht hilft es, ansonsten bitte ignorieren:

Wie matt b vorgeschlagen, sollten Sie nicht Java-Code in einem JSP platzieren. Stattdessen "einfach" Tags verwenden. Wenn Sie die standard tag library verwenden, gibt es fast alles, was Sie brauchen. Für Dinge, die Sie selbst erledigen müssen, ist es sehr einfach, Ihre eigenen Tags zu schreiben, sobald Sie wissen, um welche Tags es sich handelt.

Mit diesem Trick erhalten Sie eine bessere Anwendungs ​​(View) -Architektur, Gelegenheit für Tests (hoffe, Sie mögen sie), halten Sie sich an das DRY (dont repeat yourself) -Prinzip und legen Sie alle Java-Code in .java-Dateien, so dass sie problemlos von beliebigen Werkzeug abgeholt werden können.

Es gibt sogar eine Option für web.xml, um das Deaktivieren von Scripting zu erzwingen, die Tags bleiben funktionsfähig, aber wenn Sie bereits eine riesige Investition in scripted jsps haben, ist dies möglicherweise nicht das, was Sie brauchen ...

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

Eine andere Antwort auf eine Frage, die Sie nicht fragen, ist, dass IntelliJ Idea das Szenario behandelt, die Sie sehr gut reden (obwohl ich mich von Tag zu Tag mit Eclipse, dies ist einer der Unterschiede zwischen beide IDEs)

+0

Jakarta Taglibs wurde 2010 eingestellt, ihre Taglibs wurden eingestellt und ein neues Extended Taglib wurde erstellt. Die Standard- und RDC Taglibs sind zu Tomcat gewechselt. [link] (https://tomcat.apache.org/taglibs/) –

+0

danke für die Benachrichtigung und den Link - korrigiert in dem Artikel, der ursprünglich vor diesem Ruhestand geschrieben wurde –

0

Vielleicht verstehe ich dich nicht richtig, aber es hört sich so an, als ob du die Klassen in ein Glas oder einen Krieg legst, bevor du versuchst zu refaktorieren. Refactoring ist für das aktuelle Projekt, nicht für irgendetwas in Ihrem Build-Pfad.

Wenn ich Ihre Frage missverstanden habe, entschuldige ich mich.

+0

Sorry über das Missverständnis. Nein, ich gebe die Klassen erst in ein Jar ein, wenn sie zum Testen bereitgestellt werden. Refactoring funktioniert projektübergreifend für mich, solange es sich bei den Projekten um Java-Projekte handelt. –

+0

Meine Antwort ins Wiki verschoben, da es nicht geholfen hat. – WolfmanDragon

2

Meine Erfahrungen damit, wie WTP (oder irgendein Geschmack von Eklipsen) Java-Code in Scriptlet-Blöcken in einer JSP-Datei behandelt, war schon immer schrecklich: Es funktioniert nie gut oder so, wie Sie es erwarten. Ich habe gesehen, Eclipse fügen Sie <jsp:import> Anweisungen in der Mitte der JSP-Datei, und machen Sie alle anderen Arten von seltsamen Formatierung.

Mein einziger Rat ist, von der Bearbeitung eines Codes in einer JSP in Eclipse weg zu bleiben.

(Meine anderen Ratschlag zu wäre nicht Java setzen Code direkt in einer JSP-Datei, und zu einer MVC-Architektur bewegen, aber das ist ein Thema für einen anderen Tag ...)

2

Bitte stimmen Sie für diese möglich sein here. Oder erstellen Sie eine neue spezifischere Feature-Anfrage. In diesem Link können Sie sehen, dass es viele Probleme bezüglich Refactoring und JSP gibt, aber nur wenige wissen, dass wenn sie für sie stimmen, die Wahrscheinlichkeit größer ist, dass sie in der nächsten Eclipse-Version implementiert werden.

Bitte kopieren und korrigieren Sie den Link, bevor Sie ihn verwenden, da er beschädigt wird. Das "+" wird "% 2B". Hier ist der richtige Link: https://bugs.eclipse.org/bugs/buglist.cgi?quicksearch=jsp+refactor

+0

+1 für den Bug-Bericht ;-) – GingerHead

Verwandte Themen