我正在开发一个Spring MVC应用程序,它使用 FreeMarker 来查看我的视图。
我在 FreeMarker 中绝对是新的,我遇到以下问题:在我的项目中,我有3个文件必须组装到一个页面中。
所以我有:
1) header.ftl 表示我所有网页的标题,例如:
<!DOCTYPE html>
<!--[if IE 8]><html class="no-js is-ie8"><![endif]-->
<!--[if gt IE 8]><!--><html class="no-js"><!--<![endif]-->
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Registrazione - MY WEBSITE</title>
<meta name="robots" content="noindex,nofollow">
<link rel="stylesheet" href="resources/css/webfont.css">
<link rel="stylesheet" href="resources/bootstrap/css/bootstrap.min.css">
<link rel="stylesheet" href="resources/bootstrap/css/bootstrap-theme.min.css">
<link rel="stylesheet" href="resources/plugins/bs-select/bootstrap-select.min.css">
<link rel="stylesheet" href="resources/plugins/bs-dialog/bootstrap-dialog.min.css">
<link rel="stylesheet" href="resources/css/style.css" />
</head>
<body id="main">
<!-- versione per popup. non prendere in considerazione -->
<!--
<div class="container page-header">
<h1>MY WEBSITE</h1>
</div>
2) footer.ftl 代表我所有网页的页脚:
<script src="assets/bootstrap/js/bootstrap.min.js"></script>
<script src="assets/plugins/bs-select/bootstrap-select.min.js"></script>
<script src="assets/plugins/bs-select/i18n/defaults-it_IT.min.js"></script>
<script src="assets/plugins/bs-dialog/bootstrap-dialog.min.js"></script>
<script src="assets/plugins/jq-form-validation/jquery.validation.js"></script>
<script src="assets/js/functions.lib.js"></script>
<script src="assets/js/form-validation.js"></script>
</body>
</html>
3)然后我有我的特定页面(名为 myPage.ftl ,仅代表内容,如下所示:
<h1>This is the content</h1>
<p>Some inforamation</p>
header.ftl 和 footer.ftl 进入我的项目目录** \ WEB-INF \ freemarker \ layout **。
所以我的问题是:如何在 myPage.ftl 和 footer.ftl header.ftl 内容>在 myPage.ftl 页面的内容下?
答案 0 :(得分:4)
我使用用户定义的宏进行页面布局,例如让我们调用您的布局 JPopupMenu popUp = new JPopupMenu();
popUp.add(new JMenuItem("sample1"));
popUp.add(new JMenuItem("sample2"));
popUp.addKeyListener(new KeyListener() {
@Override
public void keyTyped(KeyEvent e) {
System.out.println("yy");
}
@Override
public void keyPressed(KeyEvent e) {
System.out.println("yy");
}
@Override
public void keyReleased(KeyEvent e) {
System.out.println("yy");
}
});
JFrame f = new JFrame();
JTextArea txtArea = new JTextArea();
f.add(txtArea);
f.setSize(300, 150);
f.setLocationRelativeTo(null);
f.setVisible(true);
popUp.setVisible(true);
popUp.show(txtArea, 0, 0);
popUp.requestFocus();
:
standardPage.ftl
然后,您可以在每个页面中调用此宏,例如<#macro standardPage title="">
<!DOCTYPE html>
<html lang="en">
<head>
<title>${title}</title>
</head>
<body>
<#include "/include/header.ftl">
<#nested/>
<#include "/include/footer.ftl">
</body>
</html>
</#macro>
:
homePage.ftl