您好我正面临重定向问题。
我有一个API,当我点击图像时会调用它,它将获取用户联系号码并从软件拨打电话。
所有的事情都很完美,但问题是,API重定向到我不想要的其他页面。
我只想显示调用的消息,但焦点应该保留在同一页面上。
这是我的xhtml代码:
Cell No.
<h:outputText value="#{informationManagerBean.cust.cellNo}" styleClass="textColorChange"/>
Direct Dial
<h:outputLink style="margin: 25px" id="tool_dial" onclick="PF('callDialog').show();
{
return true;
}" value="http://199.199.333.94/calling.php" >
<img src="Resources/images/dialer.png" alt="NR Letter" align="top" style="margin: 25px"/>
<f:param name="cli" value="#{informationManagerBean.cust.cellNo}" />
<f:param name="userid" value="000001" />
</h:outputLink>
<p:dialog id="callDialog1" onShow="myFunction();" onHide="myStopFunction();" header="Calling..."
width="200px" widgetVar="callDialog"
position="center" draggable="true" resizable="false" closable="false"
closeOnEscape="true" appendTo="@(body)" modal="true">
</p:dialog>
这是java脚本:
<script>
var myVar;
function myFunction()
{
myVar = setTimeout(function() {
PF('callDialog').hide()
}, 3000);
}
function myStopFunction()
{
clearTimeout(myVar);
}
</script>
谢谢
h:outputLink
应该重定向到另一个uri。我建议你从管理bean调用http://199.199.333.94/calling.php上的REST api,你可以通过p:commandLink
或p:commandButton
来引用它。 ajax调用将阻止重定向到api的uri。
编辑:
有关从java How to use java.net.URLConnection to fire and handle HTTP requests进行http调用的示例,请参阅以下内容
Primefaces commandLink https://www.primefaces.org/showcase/ui/button/commandLink.xhtml
使用这样的功能,您可以从bean中触发拨号器
public int doCall(String cli, String userid) {
HttpURLConnection conn = (HttpURLConnection) new URL("http://199.199.333.94/calling.php?cli="+cli+"&userid="+userid).openConnection();
conn.setDoOutput(false);
int responseCode = conn.getResponseCode();
conn.disconnect();
return responseCode;
}