Java Wicket模态显示渲染(目标)
我对Wicket模态窗口有问题。我有一个模态窗口,它对外部服务执行UNIREST调用。响应用于填充列表。该列表由下拉选项使用。问题是Wicket模态窗口位于中继器内,因此可能会发生这样的情况:页面在呈现contenitor页面之前会多次调用以创建模态Java Wicket模态显示渲染(目标),java,ajax,asynchronous,wicket,Java,Ajax,Asynchronous,Wicket,我对Wicket模态窗口有问题。我有一个模态窗口,它对外部服务执行UNIREST调用。响应用于填充列表。该列表由下拉选项使用。问题是Wicket模态窗口位于中继器内,因此可能会发生这样的情况:页面在呈现contenitor页面之前会多次调用以创建模态 class Page{ ListView listView = new ListView(wicket:id, list){ @Override protected void populateItem(ListItem&
class Page{
ListView listView = new ListView(wicket:id, list){
@Override
protected void populateItem(ListItem<Article> item) {
ModalWindow modal = new Modal(){
//the modal inside the constructor do the call to render the DropDownChoice
//and so before the entire page is rendered houndreds of call are done
}
}
}
}
类页面{
ListView ListView=新建ListView(wicket:id,列表){
@凌驾
受保护的void populateItem(列表项){
ModalWindow模态=新模态(){
//构造函数内的模态调用呈现DropDownChoice
//因此,在呈现整个页面之前,需要进行大量的调用
}
}
}
}
在浏览器端,这是非常糟糕的,使系统非常慢。有一种方法仅在模式有效显示时在单击时执行调用?有一种方法可以执行异步调用来填充列表,而不会引发Wicket异常
我想用一个空列表初始化列表,然后在单击时调用并通过AJAX重新呈现模式。可能吗?这是一个好方法吗?您应该在每页只创建一个
ModalWindow
,而当您想显示一个时,在调用show
方法显示之前,使用setContent(Component-Component)
方法创建并设置该ModalWindow
的内容。你现在已经在你的页面构造器中创建了所有的内容了吗?它似乎可以工作了!感谢实际上正确的方法是每页只有一个包含内容的ModalWindow
,并且在调用show
方法之前只更改其模型。如果你想尝试一下,我可以给出一个答案来演示这种方法。上面的解决方案已经起作用了。感谢您的回答,在调用show
方法进行显示之前,您应该只为每页创建一个ModalWindow
,而当您想显示一个时,请使用setContent(Component-Component)
方法创建并设置该ModalWindow
的内容。你现在已经在你的页面构造器中创建了所有的内容了吗?它似乎可以工作了!感谢实际上正确的方法是每页只有一个包含内容的ModalWindow
,并且在调用show
方法之前只更改其模型。如果你想尝试一下,我可以给出一个答案来演示这种方法。上面的解决方案已经起作用了。谢谢你的回答