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) {
// ...
}
Run Code Online (Sandbox Code Playgroud)
但是这种方法在一个重要的用例中失败了.删除相关帐户持久"记录"对象后,下面也不能正常加载AccountPage(已删除的记录仍是可见的).此代码在AjaxFallbackLink的onClick()中执行.
setResponsePage(new AccountPage(AccountPage.pageParameters(account), message));
Run Code Online (Sandbox Code Playgroud)
另一方面,我原来的做法......
setResponsePage(AccountPage.class, AccountPage.pageParameters(account));
Run Code Online (Sandbox Code Playgroud)
...工作正常,因为它以某种方式"更彻底地"加载AccountPage,但是,再次,我不知道如何干净地传递infoMessage参数.
(AccountPage.pageParameters()上面是一个简单的静态实用程序,用于创建具有"0"=帐户ID的适当PageParameters.AccountPage构造函数始终使用ID从持久性加载帐户.)
有任何想法吗?也许使用AjaxFallbackLink部分导致问题?
使用Wicket 1.4.