Я использую Ocpsoft Rewrite для перезаписи URL-адресов в проекте JSF. У меня есть правило перенаправления, которое отлично работает:
.addRule()
.when(Direction.isInbound().and(Path.matches("/venue/{id}")))
.perform(Redirect.temporary(context.getContextPath() +
"/protected/index.xhtml?venueID={id}"));
Однако из-за перенаправления это изменяет URL-адрес на панели навигации. Я думал, что вместо этого могу использовать правило соединения, но оно не работает так, как я ожидал:
.addRule(Join.path("/venue/{venueID}").to("/protected/index.xhtml"))
.perform(Log.message(Level.INFO, "Rewrite is active!"));
Я думал, что это правило будет перенаправлять, например, с foo/venue/123
на foo/protected/index.xhtml?venueID=123
, но я не добавляю параметр ?venueID=...
к URL-адресу.
Кто-нибудь знает, как должно выглядеть правильное правило?