簡體   English   中英

如何通過gwt客戶端檢查圖像文件是否存在於classpath中?

[英]How to check if image file exists in classpath through gwt client side?

我正在創建一個Image對象,要向其動態設置圖像的url。

Image img =  new Image();
if(vehicleType.equals("car"))
   img.setUrl(images/car.png);
else
   img.setUrl("");

在這里,我不知道car.png存在於類路徑中的images文件夾中。 我如何檢查它的存在? 如果car.png不在classpath上,我想將默認的車輛圖像設置為該對象。

謝謝

您無法從客戶端檢查圖像是否在類路徑上。

您可以執行的操作是使用其addErrorHandler()方法向Image添加一個ErrorHandler ,以便您可以檢測瀏覽器是否無法加載該圖像(例如,因為該圖像在服務器端不存在)。

Image img = new Image();
img.setUrl("SET YOUR URL");
img.addErrorHandler(new ErrorHandler() {
    @Override
    public void onError(ErrorEvent e){
        // Failed to load image
    }
});

注意:還有一個Image.addLoadHandler()方法,可用於檢測何時加載圖像。

另一種方法是在服務器端創建一個在服務中發布的方法,該方法檢查圖像是否可用,然后從客戶端代碼中調用此方法。

旁注

如果您是編寫客戶端代碼的人,並且告訴圖像url為images/car.png並且您是匯編服務器端資源的人,則應該不會發生這種情況。 在生產環境中,您不應使用此類檢查。 如果您在某處編寫img.setUrl("images/car.png") ,則應使car.png在服務器端可用,而不必在運行時客戶端進行檢查。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM