`
sundful
  • 浏览: 1253386 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Sitemesh 的路径问题

阅读更多

Sitemesh的问题让人非常头痛,搞了一天。现把心得整理一下

 

首先是decorator.xml里面的配置问题

 

 <decorator name="admin" page="admin.jsp">
        <pattern>/index/login.jsp</pattern>
        <pattern>/index/index.jsp</pattern>
        <pattern>/common/journal/journalHome.jsp</pattern>
    </decorator>

 定义了amin这个装饰器装修的页面,均采用绝对路径

 

其次是装饰器页面里的路径,分为两部分,

<link  rel="stylesheet" type="text/css" href="<%=application.getContextPath()%>/decorators/main.css">

 

这些HTML标签里的 href可以用="<%=application.getContextPath()%>/获得应用环境的路径,没问题

 

但是

<page:applyDecorator page="<%=application.getContextPath()%>/decorators/nav.jsp" name="panel"  encoding="UTF-8" />

 就有问题了,总是编译不过,是否写错了,还是不能这样用,还在研究中

 

不过有一点还是明白的,那就sitemesh过滤器对当前的请求地址进行处理,截取最后一个/前的地址,再加到<page:applyDecorator>标签中的page属性上,如当前请求

http://localhost:8080/macaulites/common/journal/journalHome.jsp

 

<page:applyDecorator page="/decorators/nav.jsp" name="panel"  encoding="UTF-8" />

 

最后得到的地址是

 

http://localhost:8080/macaulites/common/journal/decorators/nav.jsp

 

所以经常出现找不到页面的问题,我们在装饰器标签的page属性用绝对地址"/macaulites"有问题,但用另一种绝对地址形式则无问题如

http://localhost:8080/macaulites/decorators/nav.jsp

 

 

 

现在项目的sitemesh路径的解决方法是:href src 等用 /macaulites/...... 这种形式的绝对路径

                                                       page 属性用  http://localhost:8080/macaulites/ 这种绝对路径

 

 但是上面还是有问题,page属性采用上面那种绝对路径会产生页面乱码,最终用${application.contextPath}解决了所有问题

试一下${pageContext.request.contextPath}

分享到:
评论

相关推荐

    SiteMesh教程及SiteMesh官方文档翻译

    接下来,需要将SiteMesh的JAR包添加到项目的类路径中。具体来说,将`sitemesh-2.3.jar`文件复制到`WEB-INF/lib`目录下。 **第三步:创建装饰器配置文件** 接着,需要创建一个名为`decorators.xml`的配置文件,用于...

    siteMesh demo+文档

    SiteMesh 是一个开源的Web应用程序布局和装饰框架,主要用于解决Web应用中的页面布局问题。它通过拦截HTTP请求,将页面内容与预定义的布局模板相结合,实现统一的页面头部、底部和侧边栏等元素,从而提高网站的整体...

    sitemesh框架简单例子

    对于其他构建工具,可以找到相应的库文件并将其添加到类路径中。 接下来,配置Sitemesh。这通常在web.xml文件中完成,你需要设置过滤器来启动Sitemesh,并指定哪些页面需要被装饰。默认情况下,Sitemesh会装饰所有...

    页面装饰器(sitemesh)实例源代码

    1. **添加Sitemesh依赖**:首先,你需要在项目的构建路径中引入Sitemesh的库。这通常可以通过Maven或Gradle来完成,或者直接下载jar包添加到项目类路径下。 2. **配置web.xml**:在`WEB-INF/web.xml`中,我们需要...

    SiteMesh

    1. **集成SiteMesh**: 将SiteMesh的JAR文件添加到项目类路径中,并在Web应用的`web.xml`中配置SiteMesh过滤器。 2. **创建布局文件**: 设计并创建一个HTML布局模板,定义页面的结构和样式。 3. **配置SiteMesh**: ...

    sitemesh3官方下载包

    开发者需要将这些库添加到他们的项目类路径中,以确保Sitemesh3能够正常工作。 2. **api** 目录:这个目录下的文档通常是Javadoc,提供了Sitemesh3 API的详细说明。开发者可以通过阅读这些文档来了解如何使用...

    springMVC与sitemesh的结合

    而Sitemesh则是一个页面布局和装饰框架,主要用于处理Web应用中的页面布局问题,比如统一头部、底部和侧边栏,提升用户体验并简化开发。 将Spring MVC与Sitemesh结合使用,可以实现更高效的Web应用开发。以下是对这...

    Sitemesh 3 的使用及配置

    ### Sitemesh 3 的使用及配置 #### 一、Sitemesh 3 简介 Sitemesh 是一个非常实用的Web页面布局与修饰框架,它通过Servlet中的Filter来实现网页的装饰功能,类似于ASP.NET中的“母版页”技术。这种技术允许开发者...

    sitemesh例子

    Sitemesh 是一个开源的 Web 应用程序装饰框架,主要用于解决网页布局和页面统一风格的问题。它通过拦截 HTTP 请求,将请求的页面内容与预先定义好的模板结合,使得开发者可以轻松地创建出统一的网站外观和感觉。在...

    sitemesh入门demo

    - 首先,你需要将Sitemesh的JAR文件添加到你的项目类路径中。这可以通过Maven或Gradle的依赖管理来实现。 - 接着,在Web应用的`web.xml`配置文件中,需要配置Sitemesh的过滤器,以启用Sitemesh的页面装饰功能。 2...

    freemarker 与sitemesh 整合例子

    3. **配置Freemarker**:在应用的配置文件中,设置Freemarker的相关属性,如模板路径、输出编码等,并将Freemarker与Servlet容器集成。 4. **整合Sitemesh和Freemarker**:为了让Sitemesh能够装饰Freemarker生成的...

    sitemesh和freemarker结合自我总结

    - **性能考虑**:虽然Sitemesh简化了页面布局的处理,但在大型项目中仍需关注性能问题,特别是在部署到生产环境时,需确保资源的高效加载和缓存策略的有效实施。 通过上述步骤,可以有效地将Freemarker和Sitemesh...

    sitemesh-3.0.0的库和源码

    - **添加依赖**:在你的项目中,需要将Sitemesh的JAR文件添加到类路径中,或者在Maven或Gradle构建系统中添加对应的依赖配置。 - **配置web.xml**:在Web应用的配置文件`web.xml`中添加Sitemesh的过滤器配置,指定...

    spring mvc sitemesh velocity整合

    2. **配置Spring MVC**:在Spring的配置文件中,配置Spring MVC的DispatcherServlet,并设置视图解析器为VelocityViewResolver,指定Velocity模板文件的路径。 3. **配置Sitemesh**:在web.xml中配置Sitemesh的...

    sitemesh技术的应用.doc

    例如,当用户请求访问某个特定路径时,Sitemesh会自动应用预设的模板,将该页面内容嵌入到模板中,从而实现页面风格的统一。 ### 配置与使用 Sitemesh的配置主要在`WEB-INF/web.xml`文件中完成,涉及添加filter...

    sitemesh简单教程页面装配器

    这里配置了一个名为`sitemesh`的过滤器,使用了Sitemesh提供的`PageFilter`类,并将其应用于所有的URL路径。 2. **复制所需的Sitemesh库文件** 将Sitemesh的jar包(例如`sitemesh-2.3.jar`)复制到项目的`WEB-...

    SiteMesh入门示例

    1. **安装和配置 SiteMesh**:首先,你需要将 SiteMesh 的 JAR 文件添加到你的项目类路径中。然后,在你的 Web 应用的 `web.xml` 配置文件中,添加 SiteMesh Filter 的配置,指定其拦截哪些 URL。 2. **创建 ...

    Struts2整合SiteMesh技巧

    ### Struts2整合SiteMesh技巧 #### 概述 在Web开发中,为了实现页面布局的统一性与可维护性,通常会采用一种称为“页面布局管理”的技术。Struts2框架提供了对SiteMesh的支持,这是一种强大的页面布局管理工具。...

    sitemesh框架学习

    相信大家用过frame页面框架、iframe页面框架、include导入的方式都可以实现框架布局。但是这些方法out了,学习了sitemesh...所以sitemesh是你最好的选择,把源代码共享给大家并含有注释及路径地址;希望能帮助到大家。

    Struts2整合SiteMesh

    同时,确保Struts2的核心库也在类路径中。 2. **配置Struts2**:在struts.xml配置文件中,添加SiteMesh插件的配置,使Struts2知道需要使用SiteMesh进行页面装饰: ```xml *"/&gt; &lt;filter-name&gt;struts2 ...

Global site tag (gtag.js) - Google Analytics