【问题标题】:How to use printable view from siteMesh?如何使用 siteMesh 的可打印视图?
【发布时间】:2015-10-05 18:51:52
【问题描述】:

我正在使用带有 Spring Frameworks 4.1 的 siteMesh 2.4.2。 UI 被构建为 head/content/footer 样式。

这对大多数情况都很好。但是当我尝试生成一个可打印的视图时,我发现我做不到,因为所有的 JSP 都被包裹在那种样式中。

我怎么不能简单地应用 SiteMesh 装饰器?但是直接请求纯 JSP 而不使用 MAV 样式将所有内容放在装饰框架中。

编辑

我尝试按照指示进行

http://wiki.sitemesh.org/wiki/display/sitemesh/Decorating+Beyond+URL+Patterns

我将可打印映射器添加到我的 sitemesh.xml 中:

    <mapper class="com.opensymphony.module.sitemesh.mapper.PrintableDecoratorMapper">
        <param name="decorator" value="printable" />
        <param name="parameter.name" value="printable" />
        <param name="parameter.value" value="true" />
    </mapper>

然后我将 meta 添加到我的 JSP 标头中:

<meta name="decorator" content="printable">

我还尝试将它作为参数传递给我的控制器,例如:

 mav.setViewName("/WEB-INF/sitemesh-decorators/printableView.jsp?decorator=printable&");

结果是一样的,框架(页眉、页脚)还在。

有什么想法吗??请帮忙!

【问题讨论】:

    标签: jsp spring-mvc parameters decorator sitemesh


    【解决方案1】:

    经过大约几周的思考和尝试,我几乎放弃修复它。

    意外地,我发现我的可打印 JSP url 不是我所期望的,因为我没有看到参数“printable=true”。突然,我发现了原因,这可能会帮助处于我这种情况的其他人。

    在我的情况下,我使用 ModelAndView 通过调用“.setViewName”从 Spring MVC 控制器调出我的可打印视图,并通过在末尾附加“printable=true”将参数放入我的 JSP。这是完全错误的。

    正确的做法是:当我从其他 JSP 调用控制器时,必须将“printable=true”放在请求映射路径的末尾。当我这样做时,可打印视图按预期显示。

    看起来是这样的:

    <a class="button" href="${pageContext.request.contextPath}/printPlacementEntityByPartner?placementIdKey=${placemententity.placementId}&printable=true&">
    

    希望这将有助于其他人在我的情况下。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-12-04
      • 2011-09-07
      • 2015-11-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-27
      • 2014-05-30
      相关资源
      最近更新 更多