我正在使用 Ocpsoft Rewrite 在 JSF 项目中执行 URL 重写。我有一个重定向规则,效果很好:
.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
到foo/protected/index.xhtml?venueID=123
,但我没有得到?venueID=...
附加到 URL 的参数。
任何人都知道正确的规则应该是什么样的?