2016-08-24 66 views
0

我有一个包含TextField的窗体的简单页面。我已经使用名为containerId的单个变量设置了模型对象(可序列化POJO)。无论我使用LoadableDetachableModel还是标准Model.of(),如果我有一个也称为containerId的PageParameter,那么表单模型行为会中断,导致值始终保持为PageParameter值的设置。如果我将页面参数名称更改为容器,并在初始化时将该值传递给我的模型,问题就会消失。有没有其他人经历过这个?如果你能提供任何细节,为什么会发生这种情况?Wicket PageParameters干扰页面的模型对象

回答

2

听起来好像冲突在您提交表单时产生的URL中。我猜测你的页面是以这样一种方式安装的,即PageParameters被编码为URL中的查询参数,并且表单通过GET来提交,GET因此将其值作为查询参数编码在URL中。因此添加了两个具有相同名称的查询参数,其中一个会丢失。

所以,至少有两个选项,你可以尝试:

  1. 变化形式POST(加方法=“POST”的HTML)

  2. 安装的方式在页面它对页面参数进行不同的编码,例如类似于以下内容:

    mountPage(“/ page/$ {containerId}”,YourPageClass.class);

+1

另一种解决方法是重写TextField#getInputName()并返回一些独特的东西(由您决定可能是什么)。 –