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

标签 java vaadin7

我正在打电话

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

导航器将打开注册为“myview”的 View ,其中参数 可以通过调用从ViewChangeEvent获取

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 但这并不能回答我的问题。

最佳答案

我没有意识到按 F5 时 UI 会重新加载。有一个电话,比如

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

在我的 UI 类的初始化代码中。显然,感叹号包含在 getUriFragment() 的返回中,即它返回“!myview/param=myparam”。我通过简单地去掉此时的感叹号来解决这个问题。

关于java - 使用 url 片段中的参数重新加载页面会在 vaadin 中添加额外的斜杠字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33588929/

相关文章:

user-interface - Vaadin:如何限制 ComboBox 过滤值的长度

java - 如何在网格上的每个空间中输入不同的值

java - 我的按钮在 MainActivity.java 文件中找不到方法

java - 无法将类导入到 Java 项目

java - 带有命名空间的 XML 使用 XSD 进行验证会引发异常

enums - 从Vaadin 7中的枚举中创建一个OptionGroup(单选按钮)?

java - 为什么 HBase API 在使用前缀过滤器扫描表后返回空集?

java - 如何在 Vaadin 中设置网格

java - 在 vaadin 表中按类类型对齐所有值?

java - Vaadin 7 在 View 之间传递数据