如何使用apache tiles 2实现这种布局?

时间:2016-10-20 08:10:31

标签: html tiles apache-tiles tiles2

enter image description here

在创建此类布局时遇到问题。控制器触发破折号内容,并应创建布局。现在我有了这个定义,我被封锁了。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE tiles-definitions PUBLIC
        "-//Apache Software Foundation//DTD Tiles Configuration 2.0//EN"
        "http://tiles.apache.org/dtds/tiles-config_2_0.dtd">

<tiles-definitions>

    <definition name="masterLayout" template="/WEB-INF/jsp/layout/master.jsp">
        <put-attribute name="headerInclude" value="" />
        <put-attribute name="body" value="" />
        <put-attribute name="footerInclude" value="" />
    </definition>

    <definition name="dashboardLayout" extends="masterLayout">
        <put-attribute name="body"  value="dashboardLayoutBody" />
    </definition>

    <definition name="dashboardLayoutBody" template="/WEB-INF/jsp/layout/dashboard.jsp">
        <put-attribute name="menu" value="/WEB-INF/jsp/parts/menu.jsp" />
        <put-attribute name="body"/>
    </definition>

    <!-- this page is triggered -->
    <definition name="login_page" extends="masterLayout">
        <put-attribute name="body" value="/WEB-INF/jsp/layout/login.jsp" />
    </definition>

    <!-- this page is triggered -->    
    <definition name="some_page" extends="dashboardLayout">
        <put-attribute name="body" value="/WEB-INF/jsp/content/admin_groups/supervisor.jsp"/>
    </definition>

</tiles-definitions>  

主布局有此内容

<!DOCTYPE html>
<html>
<head>
    <!-- Master css, js, meta, tags additions .... -->
    <tiles:insertAttribute name="headerInclude"/>
</head>
<body>
    <tiles:insertAttribute name="body"/>

    <!-- Master css, js, meta, tags additions .... -->
    <tiles:insertAttribute name="footerInclude"/>
</body>
</html>  

我需要以某种方式扩展模板并拥有自己的模板,以包含菜单

1 个答案:

答案 0 :(得分:0)

作为jsp模板的新角色,我没有意识到我可以将jsp:include Aapache Tiles 并行使用,这解决了这个问题。

主要问题是我无法仅在仪表板布局中包含一次菜单,并且无处不在。

仅使用切片,cascade标记上有put-attribute属性,允许在其他属性中使用该属性。

请注意,cascade需要DOCTYPE tiles-definition最低版本2.1

<!DOCTYPE tiles-definitions PUBLIC
        "-//Apache Software Foundation//DTD Tiles Configuration 2.1//EN"
        "http://tiles.apache.org/dtds/tiles-config_2_1.dtd">