我正在开发一个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页面内容上面的header. ftl内容和myPage.ftl页面内容下面的footer.ftl内容?
2条答案
按热度按时间wn9m85ua1#
我使用用户自定义的页面布局宏来实现这一点,例如,让我们称您的布局为
standardPage.ftl
:然后你可以在每个页面中调用这个宏,例如
homePage.ftl
:svdrlsy42#
文档建议不要再使用include了,所以我用macro这样做: