【问题标题】:Sitemesh different decorators for the same URLSitemesh 相同 URL 的不同装饰器
【发布时间】:2011-12-24 06:32:36
【问题描述】:

我正在使用urlrewriteFilter (org.tuckey.web.filters.urlrewrite.UrlRewriteFilter) 将诸如www.mysite.com/myname 之类的页面转发到Struts2 操作。该操作在站点网格中映射,并且可以正常工作。

但现在我想保留相同的 URL,但根据用户是否登录,将另一个装饰器应用于页面。

我正在使用 AppFuse-stack Struts2。

【问题讨论】:

    标签: spring url-rewriting struts2 sitemesh appfuse


    【解决方案1】:

    好的 - 因为看起来没有其他人愿意尝试。

    Sitemesh 根据传入的 url 字符串选择装饰器,因此要拥有不同的装饰器,您需要根据客户端的登录状态使用不同的 url。 AFAIK Sitemesh 使用整个 Url 字符串,因此它包含参数,因此您可以通过附加 ?loggedIn="true" 或 ?loggedIn="false" 并在其上映射装饰器。但是,这对 POST 请求没有帮助。

    另一种方法是创建两个 Struts 包 - 一个用于登录用户,一个用于匿名用户,因此您的操作将具有不同的路径,然后映射到 Url 的路径部分。

    我不知道这在您的场景中有多实用,但第三种选择可能是拥有一个通用装饰器并通过单独的样式表控制布局,您可以通过 jsp 中的测试来控制这些样式表。

    HTH 问候

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-05-30
      • 2014-02-14
      • 2013-08-25
      • 2013-03-01
      • 2011-05-21
      • 2011-04-12
      • 2013-08-02
      相关资源
      最近更新 更多