3

JSF プロジェクトで URL 書き換えを実行するために、Ocpsoft Rewrite を使用しています。私は正常に動作するリダイレクトルールを持っています:

.addRule()
        .when(Direction.isInbound().and(Path.matches("/venue/{id}")))
        .perform(Redirect.temporary(context.getContextPath() + 
                "/protected/index.xhtml?venueID={id}"));

ただし、リダイレクトのため、ナビゲーション バーの URL が変更されます。代わりに Join ルールを使用できると思いましたが、期待どおりに機能しません。

.addRule(Join.path("/venue/{venueID}").to("/protected/index.xhtml"))
        .perform(Log.message(Level.INFO, "Rewrite is active!"));

このルールは、たとえば から にリダイレクトすると思ってfoo/venue/123いましたが、URL にパラメーターが追加されてfoo/protected/index.xhtml?venueID=123いません。?venueID=...

正しいルールがどのように見えるべきか知っている人はいますか?

4

2 に答える 2

1

本当に必要な場合は、Forward代わりに次のことを行うことができます。

.addRule()
.when(Direction.isInbound().and(Path.matches("/venue/{id}")))
.perform(Forward.to("/protected/index.xhtml?venueID={id}"));

しかし、これは Join のようにアウトバウンド HTML リンクの修正を処理しません!

于 2014-05-14T14:59:29.247 に答える