0

我正在尝试本地化 Lenya 发布 URL。我将 URL 翻译存储在 Document 元数据中,并使用 URLRewriter 转换器重写 url。

例如,我从 /lenya/default/authoring/index.html 构建 /lenya/default/authoring/en/home

但我找不到一种简单的方法来强制 Lenya 将传入的请求 URI 翻译回原始路径:/lenya/default/authoring/index.html

真的我想通过管道使用原始 URL 处理请求,而不是翻译。

有可能吗?我曾尝试添加一个 servlet 过滤器并使用调度程序,但过滤器无法访问文档元数据,因为在此阶段环境对象尚未在处理堆栈中......

(此时我只看到一种方法——更新 CocoonServlet 和 Cocoon 类)

谢谢!

4

1 回答 1

0

我能够通过 RequestListener 做到这一点。

在 public void onRequestStart(Environment environment) 方法中,我使用新的真实 URL 创建 RequestWrapper 并将其放入 objectModel。我还用真实的 URL 更改环境上下文: env.setContext("", realUrl, env.getContext())

这很好用!

于 2010-09-21T19:27:08.963 回答