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/