如何正确导入页眉和页脚页面到FreeMarker页面?

时间:2016-04-05 14:06:03

标签: spring spring-mvc freemarker

我正在开发一个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 页面的内容下?

1 个答案:

答案 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