2011-02-07 62 views
11

我有一個使用jstl和Struts 1標記的遺留web應用程序。當我用Java 5/6預編譯JSP文件時,jstl和Struts 1標籤會引發有關「未檢查或不安全操作」的警告。例如,如果我用下面的標籤:抑制JSP文件中未經檢查的Java警告

<%@ page import="/anotherpage.inc" %> 

以下警告拋出:

[javac] Note: Some input files use unchecked or unsafe operations. 
[javac] Note: Recompile with -Xlint:unchecked for details. 

如果我重新編譯-Xlint:未選中,我得到的內部工作細節有問題的JSP標記庫。我想要禁止所有未經檢查的操作警告。我認爲使用-Xlint:-unchecked會禁止警告,但它沒有。

如何在編譯我的JSP頁面時禁止這些警告?對JSP標籤庫進行重新編碼或更新一千個JSP頁面是不現實的。我正在尋找一個編譯器標誌來全局禁用警告,所以我可以看到除未經檢查的警告之外的所有警告。謝謝!

+1

可能存在重複[是否存在與Java中的Java @SuppressWarnings等價的內容?](http:// stackoverflow。com/questions/487715/is-there-an-equivalent-to-java-suppresswarnings-in-jsp) – justkt 2011-02-07 19:45:53

+1

在這個問題中,他們詢問了一些可以添加到單個JSP中以抑制警告的東西。我正在尋找全球性的東西。 – Bob 2011-02-07 19:47:01

回答

0

你是正確的,

-Xlint:unchecked

做的,你想的正好相反,但你也可以使用

-Xlint:-unchecked

注意額外的 「 - 」 在那裏。

這將禁用有關選中操作,而不是僅僅通過標籤庫生成的那些所有的警告,但其他的警告仍然會顯示。

0

禁用該警告的最佳方法是停止在JSP中使用Java代碼。 開始習慣於使用JSTL或JSF代替(根據需要使用自定義標籤庫)。

但隨着你不會是能夠做到這一點最有可能的,而你只需要忍受的警告遺留應用程序。 當然,您可以將-nowarn標誌添加到編譯器中,但這會禁用所有警告,而不僅僅是這一個,這可能超出您的想象。

1

這些消息是(JDK> = 1.5的強制性)註釋,而不是警告。

compiler.note.unchecked.plural=\ 
    Some input files use unchecked or unsafe operations. 

默認的編譯器行爲與-Xlint:-unchecked相同。

隨着-Xlint:unchecked您打開警報出現後,報告每個實例。

compiler.warn.unchecked.assign=\ 
    [unchecked] unchecked assignment: {0} to {1} 
... 

強制性筆記不能單獨禁用,他們都是具備-Xlint:none禁用。不幸的是,其餘的警告也被禁用。

您可以檢查其他答覆替代品,但過濾編譯器輸出的消息似乎是最簡單的解決方案。