gpt4 book ai didi

java - 创建仅内容动态更改的 Wicket 页眉/页脚/内容布局

转载 作者:行者123 更新时间:2023-12-02 02:50:04 25 4
gpt4 key购买 nike

我正在使用 Wicket,并且已关注 this构建网页模板的指南(以及 this 一个)。我的目标是拥有固定的页眉和页脚以及动态的 <div>里面<body>当我通过单击某些菜单链接更改页面时,它会更改其内容。

所以最后我做了这样的事情:

HomePage.html

<!DOCTYPE html>
<html xmlns:wicket="http://wicket.apache.org">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title wicket:id="title"> Title </title>
<link rel="stylesheet"
href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
</head>

<body>
<div wicket:id="menu"></div>

<div wicket:id="homepageContent"></div>

<div id="content" wicket:id="template" class="">
<wicket:child/>
</div>

<script src="js/jquery-3.2.1.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<script src="js/myjs.js"></script>
</body>
</html>

HomePage.java

public class HomePage extends WebPage {
// Title of the current page
private String pageTitle;

public HomePage() {
// dynamic page title
add(new Label("title", new PropertyModel<>(this, "pageTitle")));

// ...
}

// ...

public String getPageTitle() {
return pageTitle;
}

public final void setPageTitle(String title) {
pageTitle = title;
}
}

菜单.java

public class Menu extends Panel {
public Menu(String id) {
super(id);

add(new BookmarkablePageLink<>("homepageLink", HomePage.class));
add(new BookmarkablePageLink<>("page1Link", Page1.class));
add(new BookmarkablePageLink<>("page2Link", Page2.class));
}
public Menu(String id, IModel<?> model) {
super(id, model);
}
}

Page1.java

public class Page1 extends HomePage {
public Page1() {
setPageTitle("Page1");

// ...
}
}

Page2.java

public class Page2 extends HomePage {
public Page2() {
setPageTitle("Page2");

// ...
}
}

问题是每次我使用我的 Menu打开页面( Page1Page2 )浏览器会重新加载所有资源,我认为这是由于 Page1Page2这是HomePage的 child .

例如,我遇到的一个问题是,如果我想要我的 Menu通过设置 active 来跟踪我当前正在访问的页面通过 javascript 类,我会遇到麻烦,因为每次我访问页面 js文件(以及所有其他文件)被再次下载,我失去了我所做的所有逻辑。

我只想更改以下内容:

<div id="content" wicket:id="template" class="">

</div>

无需刷新页面的所有其余部分。

是否可以仅通过更改 Wicket 方法来做到这一点?

谢谢

最佳答案

您想要做的基本上是一个单页应用程序。在这种情况下,页面继承不能很好地工作。您需要将 Page1、Page2 等...转换为面板,并在用户单击菜单项时使用 AJAX 将它们放置为页面内容(在您的代码 wicket:id="template"中)。

关于java - 创建仅内容动态更改的 Wicket 页眉/页脚/内容布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43997087/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com