2016-04-05 10 views
1

私は、私の意見にFreeMarkerを使用するSpring MVCアプリケーションに取り組んでいます。ヘッダーとフッターのページをFreeMarkerページに正しくインポートするにはどうすればよいですか?

私は全く新しいですFreeMarkerと私は次の問題があります:私のprojctで私は3つのファイルを1つのページにtogheter togheterする必要があります。

だから私は持っている:

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.ftlfooter.ftlは、このディレクトリにある** \ WEB-INF \ FreeMarkerのを\レイアウトを**私のプロジェクトの

だから私の問題がある:私はmyPage.ftlページのコンテンツの下myPage.ftlfooter.ftlのコンテンツの上header.ftlコンテンツをインポートすることができますか?

+1

グーグルで「FreeMarkerのインポート」を検索するときにこれは文字通り2番目の結果である:http://freemarker.org/docs/ref_directive_include.html別FTLファイル内の[インポート1 FTLファイルの – kryger

+2

可能な複製](http://stackoverflow.com/questions/6040047/import-one-ftl-file-inside-another-ftl-file) – kryger

+0

重複http://stackoverflow.com/questions/6040047/import-one-ftl- file-inside-another-ftl-file –

答えて

4

私はこれを、ページレイアウト用のユーザー定義マクロを使用して行いました。さんがあなたのレイアウト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

<#include "/pages/standardPage.ftl" /> 

<@standardPage title="Home"> 
    <h1>Home Page</h1> 
    <p>This bit replaces the nested tag in the layout</p> 
</@standardPage> 
関連する問題