我需要从我的JSF页面调用第三方应用程序,该页面将返回HTML内容。然后,HTML内容将显示在弹出窗口中。
第三方URL是GET服务,它需要基于当前unix时间戳的密钥。所以我只能在用户点击超链接时生成完整的请求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;";
}
请您提供一些意见,如何实现这一目标?
答案 0 :(得分:0)
这将调用实际生成的URL:
<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()"/>