2009-02-11 19 views
5

我已經安裝了Eclipse 3.4版的Web Tools Project。我一直試圖按照我認爲應該的方式進行重構,並且沒有成功。Eclipse Web Tools Project是否處理JSP內部的重構?

我有一個Java項目,它包含放入Web站點的/ WEB-INF/lib中的jar的Java類。另一個項目(動態Web項目)具有相同站點的JSP文件。動態Web項目是作爲構建路徑中的必需項目與Java項目一起設置的。我還爲動態Web項目設置了「項目引用」選項來引用Java項目。

如果我使用重構來更改某個Java類中的方法名稱,我期望在JSP中對該方法的引用將被重命名。但它不起作用。 Java項目中包含使用該類的類和其他Java項目的引用會改變引用,但不會引用JSP中的方法。

我一直在擺弄它好幾天,嘗試不同版本的Eclipse和WTP。刪除我的所有項目和文件並重新設置它們。沒有什麼區別。

這是否適用於其他人?有什麼特別的我需要設置來實現這個工作?

回答

1

對不起,此不直接回答你的問題,但仍然解決你的問題...也許它有幫助,否則請忽略:

由於馬特b建議,你不應該把java代碼放在jsp中。相反,「簡單」使用標籤。如果您使用的是standard tag library,則幾乎所有您需要的都可以使用。對於你必須處理的事情,一旦你知道標籤是關於什麼的,編寫你自己的標籤是非常簡單的。使用這個技巧,您將獲得更好的應用程序(視圖)體系結構,測試機會(希望您喜歡它們),堅持DRY(不重複自己)原則並將所有Java代碼放入.java文件中,所以他們很容易被任何工具撿到。

甚至有一個web.xml選項可以強制禁用腳本,讓標籤正常工作,但如果您已經對腳本jsps有巨大投資,這可能不是您需要的......

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

另一個問題的答案你沒問的是,IntelliJ IDEA的處理,你說說非常好(雖然我使用Eclipse自己的日常場景的一個問題,這是之間的區別之一兩個IDE)

+0

雅加達Taglibs已於2010年退役,它們的taglib已被棄用,並創建了一個新的擴展Taglib。標準版和RDC Taglibs已移至Tomcat。 [鏈接](https://tomcat.apache.org/taglibs/) – 2013-03-22 10:53:22

0

也許我對你的理解並不正確,但是聽起來像是你正在嘗試重構之前將這些類放入Jar或War中。重構是針對當前的項目,而不是針對構建路徑中的任何內容。

如果我誤解了你的問題,我很抱歉。

+0

對不起,誤會。不,我不會將這些類放入Jar中,直到部署測試。只要項目是Java項目,重構就可以在整個項目中工作。 – 2009-02-11 19:26:09

+0

將我的答案移至wiki,因爲它沒有幫助。 – WolfmanDragon 2009-02-11 20:17:46

2

我對WTP(或任何食用日食)如何在JSP文件的scriptlet塊中處理Java代碼的經驗總是非常糟糕:它永遠不會運行正常或您期望的方式。我已經看到Eclipse在JSP文件的中間添加<jsp:import>語句,並執行所有其他種類的奇怪格式。

我唯一的建議是遠離編輯Eclipse內JSP中的代碼。

(我的另一條建議將把Java代碼直接在JSP文件中,並移動到一個MVC架構,但是這是另一天的主題...)

2

請投票認爲該可能here。或者創建一個新的更具體的功能請求。在那個鏈接中,你可以看到關於重構和JSP的許多問題,但只有少數人知道如果他們投票給他們,他們更有可能在下一個eclipse版本中實現。

請在使用前複製並修復鏈接,因爲它會被損壞。 「+」變成「%2B」。這裏是正確的鏈接:https://bugs.eclipse.org/bugs/buglist.cgi?quicksearch=jsp+refactor

相關問題