[英]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.