页面标记有
<div wicket:id="stepPanel" />
标记在其中,当页面第一次加载时它工作得很好,那就是
add(new MyFirstPanel("stepPanel"));
工作正常。但是当我触发一个 Ajax 事件并请求重绘时
addOrReplace(new MySecondPanel("stepPanel"));
target.add(MyPage.this);
我收到以下错误
Last cause: Failed to find markup file associated. MyFirstPanel: [MyFirstPanel [Component id = stepPanel]]
请注意,它会尝试查找错误的标记(应该为 MySecondPanel 查找标记)并且无论之前是否成功,它都会失败!
我使用反射来实例化面板,但这可能是个问题吗?没有抛出异常。
Anwser: 实际上是另外一回事——我注意到我的一个 AjaxSubmitLink 引用了一个不再放置在标记中的表单……所以无论你做什么,只要记住不要留下那个引用。