<redirect/
ナビゲーション ルールで > を使用すると問題が発生します。私のアプリケーションは HTTPS で動作し、ナビゲーション ルールで<redirect/
> を使用すると、HTTPS ではなく HTTP にリダイレクトされます。これを解決する方法はありますか?
質問する
2293 次
1 に答える
5
ConfigurableNavigationHandler
アクションのソースに基づいて URL を再マップするカスタムを実装する必要があります (ここでは、すべてのリダイレクトが https の宛先に向けられているわけではないと想定しています)。例として:
public class NavigationHandlerTest extends ConfigurableNavigationHandler {
private NavigationHandlerTest concreteHandler;
public NavigationHandlerTest(NavigationHandler concreteHandler) {
this.concreteHandler = concreteHandler;
}
@Override
public void handleNavigation(FacesContext context, String fromAction, String outcome)
{
//here, check where navigation is going to/coming from and based on that build an appropriate URL.
if(outcome.equals("someAction"){
outcome = "https://foo.bar.baz"; //set destination url
}
concreteHandler.handleNavigation(context, fromAction, outcome);
}
}
実装をfaces-config.xmlに登録します
<application>
<navigation-handler>com.example.NavigationHandlerTest</navigation-handler>
</application>
于 2013-03-26T12:25:21.890 に答える