首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Sitemesh取代了全景式春天

Sitemesh取代了全景式春天
EN

Stack Overflow用户
提问于 2015-08-13 03:25:19
回答 1查看 558关注 0票数 1

我在我的spring项目中使用无站点。请先看我的代码。

decorator.xml

代码语言:javascript
复制
<decorator name="main-layout" page="main-layout.jsp">
    <pattern>/products</pattern>
    <pattern>/welcome</pattern>
    <pattern>/admin</pattern>
    <pattern>/ajax</pattern>
</decorator>

web.xml

代码语言:javascript
复制
<!-- Spring MVC -->
<servlet>
    <servlet-name>mvc-dispatcher</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet
    </servlet-class>
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/spring/mvc-dispatcher-servlet.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>mvc-dispatcher</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>

<listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener
    </listener-class>
</listener>

    <!-- Loads Spring Security config file -->
<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>
        /WEB-INF/spring/spring-security.xml
    </param-value>
</context-param>

<!-- Spring Security -->
<filter>
    <filter-name>springSecurityFilterChain</filter-name>
    <filter-class>org.springframework.web.filter.DelegatingFilterProxy
    </filter-class>
</filter>

<filter-mapping>
    <filter-name>springSecurityFilterChain</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

<!--  Sitemesh: Decorates pages with layouts  -->
<filter>
    <filter-name>sitemesh</filter-name>
    <filter-class>com.opensymphony.sitemesh.webapp.SiteMeshFilter</filter-class>
</filter>

<filter-mapping>
    <filter-name>sitemesh</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

在我的主布局中,我只导入一个导航条。问题是,它只显示我站点的每个视图的主布局(只显示导航条)。

EN

回答 1

Stack Overflow用户

发布于 2016-09-19 12:20:13

您只定义了一个装饰器,因此只对每个页面应用该布局是合乎逻辑的,因此您需要在decorator.xml中定义其他布局。

通常情况下,我的decorator.xml就是这样的

代码语言:javascript
复制
 <decorator name="main" page="outer.jsp">
        <pattern>*/public/login*</pattern>
</decorator>
        
<decorator name="default" page="default.jsp">
        <pattern>*app*</pattern>
</decorator>

还要确保在每个布局文件中都有<decorator:body/>,这是将显示来自内部页面的内容的占位符。

就像这样

代码语言:javascript
复制
<body>
   <nav></nav>
   <aside></aside>
   <decorator:body/>
</body>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31979002

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档