加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 在Wicket 1.5(.2)中没有在url上重新加载的组件?

发布时间:2020-12-15 08:45:02 所属栏目:Java 来源:网络整理
导读:我第一次使用以下URL导航到我的应用程序: …/homepage/?0user= x 在调试模式中,我看到wicket很好地实例化我的面板等(显然). 如果我将URL更改为: …/homepage/?0user= y 然后没有任何反应,面板不会重新初始化(对于新用户=用户x的数据仍然显示)也不是Loadabl
我第一次使用以下URL导航到我的应用程序:

…/homepage/?0&user=x

在调试模式中,我看到wicket很好地实例化我的面板等(显然).

如果我将URL更改为:

…/homepage/?0&user=y

然后没有任何反应,面板不会重新初始化(对于新用户=>用户x的数据仍然显示)也不是LoadableDetachable – 或调用其他模型.

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

…/homepage/?1&user=y

然后为用户y初始化所有面板

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

…/homepage/?0&user=y

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

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

解决方法

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读