1

<redirect/ナビゲーション ルールで > を使用すると問題が発生します。私のアプリケーションは HTTPS で動作し、ナビゲーション ルールで<redirect/> を使用すると、HTTPS ではなく HTTP にリダイレクトされます。これを解決する方法はありますか?

4

1 に答える 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 に答える