【问题标题】:How can I change how single element paths are handled in Seaside?如何更改 Seaside 中单元素路径的处理方式?
【发布时间】:2011-02-20 17:06:09
【问题描述】:

Seaside 默认将example.com/myapp 指向在myapp 注册的任何应用程序。我希望有一个核心应用程序也可以处理这些链接,或者以其他方式处理这些链接。

到目前为止,我有一个home 应用程序也注册为默认应用程序,所以http://mydomain.com 将解析它,但如果我生成一个链接,如http://mydomain.com/more-info,Seaside 会尝试解析注册的应用程序在more-info。如果我希望我的home 应用程序处理链接怎么办?还是用其他方式处理?

我使用 Apache 托管 Seaside,因此我可以使用 Apache 的 URL 重写引擎将 http://mydomain.com/more-info 重写为 http://mydomain.com/home/more-info,这将由我的 home 应用程序处理。

有没有更好的方法来做到这一点?此外,如果存在解释 Seaside 请求/响应生命周期的链接,那就太好了。

【问题讨论】:

    标签: seaside


    【解决方案1】:

    您尝试做的不是 Seaside 应用程序中的常见做法。如果您想在应用程序中生成从一个页面到另一个页面的链接,您通常使用附加到锚点的回调:

    html anchor callback: [ self call: moreInfoComponent]
    

    在这种情况下,您不必关心 url 的外观,Seaside 会为您生成 url。此类生成的 url 从不具有嵌套结构,而是使用参数。

    有关 Seaside 请求/响应周期的更多信息,请参阅online book(“基础”和“测序组件”章节)。

    但是,如果您确实想要拥有这样一个嵌套的 url(使 url 可收藏),则有不同的方法,具体取决于您实际想要实现的目标。您可以查看处理过期会话的方法(在书中)或Seaside-REST package

    顺便说一句,url 到应用程序的映射是通过 WADispatcher 的(实例)发生的。如果您检查以下表达式的结果,您可以看到 Seaside 的调度程序树。它完全可以通过添加新的应用程序、调度程序等来定制......

    WAAdmin defaultServerManager adaptors first requestHandler
    

    希望这对您有所帮助...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-09-18
      • 2015-01-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-01
      • 1970-01-01
      相关资源
      最近更新 更多