0

我在以下层次结构的检票口页面中遇到了奇怪的行为。

添加了几个抽象选项卡的 RootPage 和在几个抽象选项卡中,基于用例,我们有 wicket UI Jquery 的 TabbedPanel。像这样http://www.7thweb.net/wicket-jquery-ui/tabs/TabbedPanelPage?2。要在选项卡之间导航,我使用 AjaxTabbedPanel。

问题 1:甚至默认 Jquery 文件也被添加到页面中。但是 UI 组件没有相对于 Jquery 呈现

<script type="text/javascript" src="./wicket/resource/org.apache.wicket.resource.JQueryResourceReference/jquery/jquery-2.2.4-ver-F9EE266EF993962AD59E804AD9DEBE66.js"></script>
<script type="text/javascript" src="./wicket/resource/com.googlecode.wicket.jquery.ui.resource.JQueryUIResourceReference/jquery-ui-ver-0A819924D70A18322660DEE759225D2B.js"></script>

为了克服上述问题,我通过覆盖 RootPage 中的 renderHead 方法添加了 Jquery 文件。仅适用于手动页面刷新。

RootPage.renderHead:

@Override
public void renderHead(IHeaderResponse response){
 super.render(response);
 response.render(JavaScriptHeaderItem.forReference(new PackageResourceReference(RootPage.class, "jquery.min.js")));
 response.render(JavaScriptHeaderItem.forReference(new PackageResourceReference(RootPage.class, "jquery-ui.min.js")));
}

问题 2:但是由于我使用 Ajax 在选项卡之间导航,因此使用刷新页面setResponsePage()似乎是一种意想不到的方式。

为了解决问题 1,我明确添加了 jquery,这导致了另一个显式刷新问题。

我是否遗漏了Issue1中可以解决问题的任何内容?或者有没有办法只刷新我的面板?修复问题2

4

1 回答 1

0

为什么你自己贡献 jquery.js?

我不确定这是否是您的问题的原因,但由于 Wicket 还将 jQuery 添加到 DOM 我认为您可能有 Javascript 错误。检查浏览器的 DevTools 控制台。

于 2020-07-15T19:11:16.763 回答