尝试将模型从一个页面传递到另一页面。 应用程序初始化
getRequestCycleSettings().setRenderStrategy(RequestCycleSettings.RenderStrategy.ONE_PASS_RENDER)
我有两个页面,每个页面都定义了 3 个构造函数。 PageOne 有一个表单。 OnSubmit 应该将页面模型从 PageOne 传递到 PageTwo。
对 setResponsePage 的调用首先调用构造函数 WebPage(IModel 模型)并按预期传递模型。
但紧接着,它还调用 WebPage() (noargs) 和 WebPage(PageParameters 参数)构造函数。 结果,PageTwo 被构造了 3 次,最终得到一个 null DefaultModel。
如何在调用 WebPage(IModel 模型)构造函数后告诉 Wicket 停止?
这是代码:
public class PageOne extends WebPage {
// Similar constructors for PageTwo
public PageOne() {
super();
}
public PageOne(PageParameters p) {
super(p);
}
public PageOne(IModel<?> model) {
super(model);
}
@Override
protected void onInitialize() {
super.onInitialize();
Form<Void> form = new Form<Void>("form") {
@Override
public void onSubmit() {
setResponsePage(new PageTwo((IModel<?>)getDefaultModel()));
}
};
}
}
谢谢你
Wicket 版本是 9.13.0
应用程序是一个 Springboot 应用程序(springboot 版本 2.7.11),以防万一。
我希望 setresponsePage 仅调用正确的构造函数一次并传递模型。
I expect setresponsePage to call the right constructor only once and pass the model.
我也是!但我需要调试它才能看看为什么会发生这种情况。
您可以尝试:
@Override
public void onSubmit() {
throw new RestartResponseException(new PageTwo((IModel<?>)getDefaultModel()));
}