java - Wicket 1.5(.2) 中的 url 更改时组件未重新加载?

标签 java wicket wicket-1.5

我第一次使用以下 URL 导航到我的应用程序:

.../homepage/?0&user=x

在 Debug模式下,我看到 wicket 很好地实例化了我的面板等(很明显)。

如果我将 URL 更改为:

.../homepage/?0&user=y

然后什么也没有发生,面板没有重新初始化(对于新用户 => 用户 x 的数据仍然显示)也没有 LoadableDetachable - 或调用其他模型。

但是,如果我将 URL 更改为:

.../homepage/?1&user=y

然后所有面板都很好地为用户 y

初始化

更进一步,如果您将 URL 改回

.../homepage/?0&user=y

然后再次显示用户 x 的数据。

Wicket 似乎并不关心 URL 中的参数是否已更改来决定是否重新加载组件。据我所知,这在 Wicket 1.4 中运行良好。我想我理解这种行为背后的逻辑,但不确定。另外,我想知道如何在自定义参数更改时强制 Wicket 重新加载,以及如何从 URL 中删除“丑陋的”?0(如果可能)?

最佳答案

这就是 Wicket 的状态特性。页面被实例化一次,参数被解析等等。稍后您将不同的参数传递给已经实例化的页面,但这次它的构造函数根本没有被调用,因此 PageParameters 也没有更新。更改为 ?1 会向 Wicket 询问 ID 为 1 的页面,因为没有这样的 Wicket 实例化一个新实例并传递新参数。如果您想始终拥有最新的请求参数,请使用 getRequest().getRequestParameter("user") ,这将为您提供所需的信息。 有道理吗?

关于java - Wicket 1.5(.2) 中的 url 更改时组件未重新加载?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8081143/

相关文章:

java - 将 Wicket Repeater 与支持 map 一起使用

javascript - Wicket 口:StalePageException

java - JPA SQL 子查询不起作用 - 方法未定义

java - Hibernate QuerySyntaxException 表未映射

java - 将 Oracle SQL 的十六进制转换转换为 Java 代码

design-patterns - Wicket "nullable"组件 View

wicket - 如何在 Wicket 中正确创建无状态表单和无状态结果页面

java - 自动增量 ID java db

java - Wicket 面板(对话框)无法正常工作?

wicket - 使用 Wicket 1.5 提供动态内容