2017-07-25 1 views
0

Je dois appeler une application tierce de ma page JSF, qui retournera un contenu HTML. Le contenu HTML serait alors affiché dans la fenêtre pop-up.Comment passer un paramètre dynamique basé sur l'horodatage à une URL dans h: outputLink?

L'URL tierce est un service GET qui attend une clé basée sur l'horodatage unix actuel. Je peux donc générer l'URL complète de la requête uniquement lorsque l'utilisateur clique sur le lien hypertexte sinon la clé serait déjà invalide (la clé n'est valide que 5 minutes)

J'ai essayé l'option ci-dessous, mais dans ce cas la clé est générée lorsque la page est rendue et si l'utilisateur clique sur le lien hypertexte après 5 minutes, le lien est invalide.

En outre, comme il s'agit du processus de génération de clé d'authentification, je ne souhaite pas le faire dans le javascript pour des raisons de sécurité.

<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> 

J'ai essayé aussi, mais son même comportement

<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;"; 
} 

Pouvez-vous s'il vous plaît fournir une entrée, comment cela peut être atteint?

Répondre

0

Cela appellera une url réelle générée:

<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

Merci pour vos commentaires, je vais essayer cette approche. – coder