2017-07-25 8 views
0

HTMLコンテンツを返すJSFページからサードパーティアプリケーションを呼び出す必要があります。 HTMLコンテンツがポップアップウィンドウに表示されます。h:outputLinkのタイムスタンプベースの動的パラメータをURLに渡すには?

サードパーティのURLは、現在のunixのタイムスタンプに基づくキーを必要とするGETサービスです。したがって、ユーザーがハイパーリンクをクリックしたときにのみ完全なリクエストURLを生成することができます。それ以外の場合、キーは既に無効です(キーは5分間有効です)。

私は以下のオプションを試しましたが、ページがレンダリングされ、5分後にユーザーがハイパーリンクをクリックした場合、リンクは無効です。

また、これは認証キーの生成プロセスであるため、セキュリティ上の理由から、javascriptではこれを実行したくありません。

<h:outputLink onclick="window.open('#{testMBean.thirdpartylink}','ThirdParty','menubar=no, status=no, scrollbars=yes, resizable=yes, toolbar=no, location=yes'); return false; "> 
link number 
</h:outputLink> 

は、私もこれを試してみましたが、その同じ動作が

<h:outputLink onclick="#{indexBean.JSPopup()}">#{indexBean.linkName}</h:outputLink> 

public String JSPopup() { 
    return "javascript:void window.open('" + getRedirectLink() + "','" + linkName + "','width=700,height=500,toolbar=0,menubar=0,location=0,status=0,scrollbars=0,resizable=1,left=0,top=0');return false;"; 
} 

あなたはこれを達成することができ、どのようにいくつかの入力を提供していただけますか?これは実際に生成されたURLを呼び出します

答えて

0

:あなたの入力のための

<h:panelGroup id="linkBlk"> 
     <script type="text/javascript"> 
      function openIt() { 
       var url='#{indexBean.theLink}'; 
       window.open(url); 
      } 
     </script> 
    </h:panelGroup> 
    <p:commandButton value="get PopUp" ajax="true" partialSubmit="true" process="@this" update="linkBlk" actionListener="#{indexBean.buildLink()}" oncomplete="openIt()"/> 
+0

おかげで、私はこのアプローチをしようとします。 – coder

関連する問題