A.jsp

B.jsp

C.jsp

decorators.xml

其中A.jsp是某项功能具体的jsp,A包含B,C是默认模板包含B

注:需要了解sitemesh和decorators页面组装器的主要知识http://www.cnblogs.com/luotaoyeah/p/3776879.html

需要下载sitemesh的jar包,不用组装器也可以实现

http://blog.csdn.net/liu251/article/details/2797488


decorators.xml中主要内容:装饰器配置文件

    <!-- 默认模板 -->
    <decorator name="default" page="C.jsp">
        <pattern>/*</pattern>
    </decorator>


C.jsp主要内容:网页组装的模板

    <sitemesh:usePage id="thePage" />
    <%--菜单选择 --%>
    <sitemesh:body/>
    <jsp:include page="/B.jsp">
        <jsp:param name="testmenu" value="${thePage.getProperty(\"meta.test\")}"/>
    </jsp:include>


B.jsp主要内容:菜单在这个jsp中来控制,公共页面

<c:choose>
            <c:when test="${param.testmenu== '1'}">
             
            </c:when>    

            <c:when test="${param.testmenu== '2'}">
             
            </c:when>   

</c:choose>

A.jsp主要内容:独立页面

 <meta name="test" content="1" />


前提,每个类似A的独立页面都需要有meta,来规定自己的页面需要位于在那个导航下。

C拿到A的meta为test的值,赋给B的jsp:param(name为testmunu),然后B根据${param.testmenu== '1'}来判断A页面是要处于那个导航菜单下,来进行导航菜单的一些颜色等设置


如有不明白,继续沟通