seaside - 如何更改 Seaside 中单元素路径的处理方式?

标签 seaside

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 应用程序中并不常见。如果您想在应用程序中生成从一个页面到另一个页面的链接,通常使用附加到 anchor 的回调:

html anchor callback: [ self call: moreInfoComponent]

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

有关 Seaside 请求/响应周期的更多信息可以在 online book 中找到。 (“基础知识”和“测序组件”章节)。

但是,如果您确实想要拥有这样的嵌套网址(使网址可加入书签),则有不同的方法,具体取决于您实际想要实现的目标。您可以查看处理过期 session 的方法(在书中)或查看 Seaside-REST package .

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

WAAdmin defaultServerManager adaptors first requestHandler

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

关于seaside - 如何更改 Seaside 中单元素路径的处理方式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5048181/

相关文章:

smalltalk - 从哪里开始了解 Seaside 内部结构?

smalltalk - 如何用锌运行 cometd (海边)

smalltalk - 在不创建 session 的情况下提供海边页面/组件

jquery - 为什么我在seaside 2.9中使用 'jQuery ajax'时没有发生服务器端回调?

pharo - 将Seaside加载到Pharo 2.0

smalltalk - GemStone-Linux-Apache-Seaside-Smalltalk.. 4GB 有多实用?

smalltalk - Pharo 中的 FileDirectory 和 ReferenceStream 类等效项?

smalltalk - 在 pharo seaside 3.2 中捕获 session 过期

smalltalk - 在 Seaside 中获取父组件

smalltalk - Pharo smalltalk + Seaside 中的定时器回调