Могу ли я получить атрибуты тела (а не дочерние элементы) в моем декораторе sitemesh/freemarker?

Мы используем страницы со следующим примером содержания:

<html>
    <head>
        <title>Page Title</title>
        <!-- (page-specific JS and styles) -->
    </head>
    <body>
        <h1>Page Title</h1>
        <!-- (rest of page content) -->
    </body>
</html>

А затем с помощью SiteMesh + Freemarker мы их украшаем примерно так:

<!doctype html>
<html>
    <head>
        <title><#if title?? && title?has_content>${title}</#if></title>
        <!-- (global styles and scripts)-->
        ${head}
    </head>
    <body>
        <!-- (Header elements) -->
        ${body}
        <!-- (Footer elements) -->
    </body>
</html>

Мне интересно, есть ли хороший способ распространять какие-либо дополнительные атрибуты на уровне страниц <body> элемент декоратора <body> элемент, так что они не просто выброшены?

1 ответ

Решение

Хорошо, я в конце концов нашел ответ сам после некоторых экспериментов:D Атрибуты тела входят в page.properties["body.attrName"], который вы можете использовать в моем случае так:

<#if page.properties["body.class"]??>
    <body class="${page.properties["body.class"]}">
<#else>
    <body>
</#if>
Другие вопросы по тегам