Wicket 是否允许在 PageParameters 对象中传递以下两种参数?显然不是?
accountId
显示在 URL ( )中/account/<ID>
infoMessage
未显示在(可添加书签的)URL 中的参数
我目前正在为有问题的页面使用 IndexedHybridUrlCodingStrategy ,只需尝试参数“0”和“infoMessage”就会出现此异常:
WicketMessage:并非所有参数都经过编码。确保所有参数名称都是从零开始的连续顺序的整数。当前参数名称为:[0, infoMessage]
如果我将“infoMessage”参数名称更改为“1”,它可以工作,但会产生一个丑陋的 URL(在本例中类似于/account/42/Tosite%20108207%20tallennettiin.5
),这不是我想要的。
现在,显而易见的答案可能是infoMessage 不应该在 PageParameters 中。但问题是,我尝试将其添加为普通的构造函数参数,如下所示:
public AccountPage(PageParameters parameters, String infoMessage) {
// ...
}
但是这种方法在一个重要的用例中失败了。删除与 Account 相关的持久“Record”对象后,以下内容无法正确加载 AccountPage(删除的记录仍然可见)。此代码在 AjaxFallbackLink 的 onClick() 中执行。
setResponsePage(new AccountPage(AccountPage.pageParameters(account), message));
另一方面,我原来的方法......
setResponsePage(AccountPage.class, AccountPage.pageParameters(account));
...工作正常,因为它以某种方式“更彻底地”加载 AccountPage,但是,我不知道如何干净地传递 infoMessage 参数。
(AccountPage.pageParameters()
上面是一个简单的静态实用程序,用于使用“0”= 帐户 ID 创建适当的 PageParameters。AccountPage 构造函数始终使用 ID 从持久性加载帐户。)
有任何想法吗?也许使用 AjaxFallbackLink 会部分导致问题?
使用检票口 1.4。