0

Lenya の出版物の URL をローカライズしようとしています。URL 変換を Document メタデータに保存し、URLRewriter トランスフォーマーで URL を書き換えます。

例 /lenya/default/authoring/en/home から /lenya/default/authoring/index.html をビルドします

しかし、Lenya に着信要求 URI を元のパスに変換させる簡単な方法が見つかりません: /lenya/default/authoring/index.html

本当に、翻訳されていない元の URL を使用して、パイプライン経由でリクエストを処理したいと考えています。

それはまったく可能ですか?サーブレットフィルターを追加してディスパッチャーを使用しようとしましたが、この段階では環境オブジェクトがまだ処理スタックにないため、フィルターはドキュメントのメタデータにアクセスできません...

(現時点では、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 に答える