2015-11-07 69 views
1

我打電話刷新頁面增加了額外的反斜槓字符在vaadin

getUI().getNavigator().navigateTo("myview/param=myparam"); 

和導航器打開註冊爲其中的參數 可以從ViewChangeEvent通過調用

獲得「MyView的」視圖
event.getParameters() 

它返回「param = myparam」。我的瀏覽器顯示的URL

myapp/#!myview/param=myparam 

不過,如果我重新加載頁面(例如,使用F5)

getUI().getNavigator().navigateTo("!myview/param=myparam"); 

(注意額外的感嘆號)將被調用和URL變化

myapp/#!myview//param=myparam 

(注意不應該是註釋的雙斜槓),這顯然是一個問題,實際上每個頁面重新加載都會添加另一個斜槓。我在這裏做錯了什麼,或者如何解決這個問題?我正在使用可能感興趣的CDIViewProvider。

注意:它看起來像有人在這裏有類似的問題 Vaadin 7 url navigation hashbang 但這並不回答我的問題。

回答

1

我沒有意識到,當按下F5的UI重新加載。有一個像

String uriFragment = getPage().getUriFragment(); 
getUI().getNavigator().navigateTo(uriFragment); 

在我的UI類的初始化代碼。顯然,感嘆號包含在getUriFragment()的返回中,即它返回「!myview/param = myparam」。我通過在這一點上簡單地刪除感嘆號來解決這個問題。