使用 freemarker 模板和 J2EE(如 .net)的母版页

发布于 2024-11-01 14:39:42 字数 208 浏览 2 评论 0原文

我计划使用 J2ee、Spring 3.0n、Freemarker 和 jQuery 创建一个 Web 应用程序。

我的问题是:有什么方法可以创建带有页眉和页脚的母版页并包含所有 Javascript 文件,以便我可以直接在所有页面中调用该母版页并节省一次又一次包含所有 js 文件的时间?

与.Net提供母版页的概念相同,我想在Freemarker中创建自己的母版页。

I am planning to create a web application using J2ee, Spring 3.0n, Freemarker and jQuery.

My question is: is there any way to create master page with header and footer and included all Javascript files so that i can directly call that master page in all my page and save time to include all js file again and again?

Same as .Net provides concept of a master page, I want to create my own master page in Freemarker.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

清风挽心 2024-11-08 14:39:42

基本上你编写了一个宏,我们称之为 masterTemplate。

[#macro masterTemplate title="defaultTitle"]
    <!DOCTYPE html
            PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
            "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"></meta>
        <title>${title}</title>
        ... scripts, style sheets, meta information ...
    </head>
    <body>
     <div id="header">...</div>
     <div id="content">
       [#nested /]
    </div>
    <div id="footer>...</div>
    </body>
    </html>
[/#macro]

然后,您可以在页面中使用此宏,如下所示:

[#import "/path/to/masterTemplate.ftl" as layout /]

[@layout.masterTemplate title="My test page"]
    ...content goes here...
[/@layout.masterTemplate]

通过将页面中的所有相关数据作为属性传递给 masterTemplate,您可以实现某种装饰技术:请参阅 title 属性。以同样的方式,您可以传递其他脚本和样式表。

此技术如下所示: Freemarker wiki

Basically you write a macro, let's call it masterTemplate.

[#macro masterTemplate title="defaultTitle"]
    <!DOCTYPE html
            PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
            "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"></meta>
        <title>${title}</title>
        ... scripts, style sheets, meta information ...
    </head>
    <body>
     <div id="header">...</div>
     <div id="content">
       [#nested /]
    </div>
    <div id="footer>...</div>
    </body>
    </html>
[/#macro]

Then, you use this macro within your pages like this:

[#import "/path/to/masterTemplate.ftl" as layout /]

[@layout.masterTemplate title="My test page"]
    ...content goes here...
[/@layout.masterTemplate]

You achieve some sort of decorating technique by passing all relevant data from the page as attribute to the masterTemplate: See the title attribute. In the same way you can pass additional scripts and stylesheets.

This technique is shown here: Freemarker wiki

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文