我編寫了一個小小的Java servlet,它可以動態生成一個圖像按鈕,給定參數包括標籤,高度,寬度等等,並且它會將每個新增的一個添加到緩存中。它工作正常,但它需要一個servlet調用每個調用來顯示按鈕或其突出顯示的版本。我傾倒了緩存,並在應用程序中創建了當時使用的所有按鈕的PNG文件,並將這些文件添加到應用程序中,以便它們可以被「/images/button/xyz.png」引用,其中文件名是哈希值輸入參數。根據相對URI測試資源的存在
工作正常,但我希望在有人添加新按鈕時調用原始的servlet。我使用自定義標籤來定義這些按鈕,因此JSP編譯時會調用標籤處理程序...所以我可以選擇使用其中一個預生成按鈕,或者生成對此servlet的引用它可以在顯示時渲染按鈕。
我的問題是:如何檢測圖像可用於預渲染?我不確定調用基於完整路徑創建URL對象然後調用getResource()就是答案 - 我不希望它在此時加載圖像,我只需要知道它是否存在。
是否有某種方法可以創建一個File對象,該對象將採用相對URI並允許我測試存在?
現在,我有資源重複 - 一個與類,它可以被檢測到,另一個在我們的webroot。除非我把它放在類路徑中的某個地方,否則getResource就無法找到它 - 在這個論壇上已經指出了很多次。我只是希望能稍微擺脫盒子。我知道我錯過了一些東西,如果我能弄明白,我會修改這個問題。 – 2010-08-11 19:08:05