Java 在url片段中使用参数重新加载页面会在vaadin中添加额外的斜杠字符

Java 在url片段中使用参数重新加载页面会在vaadin中添加额外的斜杠字符,java,vaadin7,Java,Vaadin7,我打电话来 getUI().getNavigator().navigateTo("myview/param=myparam"); 导航器打开注册为“myview”的视图,其中包含参数 可以通过调用 event.getParameters() 返回“param=myparam”。我的浏览器显示url myapp/#!myview/param=myparam 但是,如果我重新加载页面(例如使用F5) (注意额外的感叹号)将被调用,url将更改为 myapp/#!myview//param=my

我打电话来

getUI().getNavigator().navigateTo("myview/param=myparam");
导航器打开注册为“myview”的视图,其中包含参数 可以通过调用

event.getParameters()
返回“param=myparam”。我的浏览器显示url

myapp/#!myview/param=myparam
但是,如果我重新加载页面(例如使用F5)

(注意额外的感叹号)将被调用,url将更改为

myapp/#!myview//param=myparam
(注意双斜杠,它不应该是注释),这显然是一个问题,实际上每一个 页面重新加载会添加另一个斜杠。我是不是做错了什么,或者怎样才能解决这个问题?我正在使用可能感兴趣的CDIViewProvider

注意:这里似乎有人有类似的问题
但这并不能回答我的问题。

我没有意识到当按F5时,UI会重新加载。有一个电话是这样的

String uriFragment = getPage().getUriFragment();
getUI().getNavigator().navigateTo(uriFragment);
在我的UI类的初始化代码中。显然,感叹号包含在getUriFragment()的返回中,即它返回“!myview/param=myparam”。我修复了这个问题,只是在这里去掉了感叹号

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