右键单击然后单击模型窗口链接,首次在新选项卡中打开Wicket模型窗口时抛出错误
当我要使用Ajax链接URL从一个页面(A)转到另一个页面(B)时,显示如下…?wicket:interface=:58::# 在B页上,我有一个打开模型窗口的链接。当我们直接点击模型窗口的链接时,它工作正常,但当第一次通过右键点击打开新选项卡中的链接,然后点击模型窗口链接时,它抛出了一个错误 我正在使用setResponsePage(新B(变量))来访问另一个页面。当我使用setResponsePage(B.class)而不是setResponsePage(新B(变量))时,它工作正常 注意:我不想将pageparameter与bookmarkable和setResponsePage一起使用 错误是: org.apache.wicket.WicketRuntimeException:组件列表表单:组:issueList:1:editStatus未在com.B[id=18]页上找到,侦听器接口=[RequestListenerInterface name=IBehaviorListener,method=public abstract void org.apache.wicket.behavior.IBehaviorListener.onRequest()] org.apache.wicket.protocol.http.request.invalidUrleException:org.apache.wicket.WicketRuntimeException:component listForm:group:issueList:1:editStatus未在com.B[id=18]页上找到,侦听器接口=[RequestListenerInterface name=IBehaviorListener,method=public abstract void org.apache.wicket.behavior.IBehaviorListener.onRequest()] 在 ... 还有27个 “编辑状态”是模型窗口上的链接名称 我正在使用的类A的代码右键单击然后单击模型窗口链接,首次在新选项卡中打开Wicket模型窗口时抛出错误,wicket,Wicket,当我要使用Ajax链接URL从一个页面(A)转到另一个页面(B)时,显示如下…?wicket:interface=:58::# 在B页上,我有一个打开模型窗口的链接。当我们直接点击模型窗口的链接时,它工作正常,但当第一次通过右键点击打开新选项卡中的链接,然后点击模型窗口链接时,它抛出了一个错误 我正在使用setResponsePage(新B(变量))来访问另一个页面。当我使用setResponsePage(B.class)而不是setResponsePage(新B(变量))时,它工作正常 注意:
class A extends WebPage {
Link<String> escalated = new Link<String>("escalated") {
public void onClick() {
setResponsePage(new B(Variables));
} };
}
class B extends WebPage {
public B(variables..) {
}
final ModalWindow model = new ModalWindow("UpdateModel");
model.setContent(new C(model,variables,model.getContentId()));
item.add(new AjaxLink<Void>(**"editStatus"**) {
public void onClick(AjaxRequestTarget target) {
model.show(target);
}
}.add(new Image("edit_icon", "image/edit.png")));
}
}
class C extends Panel {
public C(.....) {
}
}
A类扩展网页{
链接升级=新链接(“升级”){
公共void onClick(){
setResponsePage(新B(变量));
} };
}
B类扩展网页{
公共B(变量…){
}
最终ModalWindow模型=新ModalWindow(“更新模型”);
setContent(新的C(model,variables,model.getContentId());
添加项(新AjaxLink(*“编辑状态”**){
公共void onClick(AjaxRequestTarget目标){
模型显示(目标);
}
}.add(新图像(“edit_图标”、“Image/edit.png”));
}
}
C类扩展面板{
公共C(……){
}
}
我已解决此问题。错误与wicket组件的状态有关
使用无状态链接而不是链接
正确代码:
A类扩展网页{
无状态链接升级=新的无状态链接(“升级”){
}}
}
它还将从url中删除“…?wicket:interface=:58::#”。
当我们使用Link时,AjaxLink将保持状态。因此,当我们在新选项卡中打开任何链接时,它将更改服务器端的状态(更改组件的ID),但在客户端它将保持不变。因此,当我们点击同一页面上的任何链接时,都没有更新ID的信息,它会抛出一个错误
public void onClick() {
setResponsePage(new B(Variables));