所有
我在JSF / Jave / Primefaces工作。
当用户点击命令按钮时,我想抓住盒子编号并同时打开两个不同的URL,这将为最终用户提供两个不同的文件供下载。
我已经尝试了很多建议,到目前为止,我一直没有成功。如果可能的话,我宁愿不使用JS,但我愿意接受建议。
我尝试重复URL构建并再次调用,但这不起作用。
感谢您的任何建议!
克里斯蒂娜
JSF:
<p:commandButton value="Open / Print Documentation" icon="fa fa-folder-open"
id="ajax" style="height:40px;" update="growl"
rendered='#{userManager.hasRole("RecordsManagementEndUsers")}'
actionListener="#{dashboardView.openPdf}">
</p:commandButton>
爪哇:
public void openPdf(ActionEvent actionEvent) {
String response = confirmBoxId(boxNumber);
if (response == "in system") {
ExternalContext externalContext = FacesContext.getCurrentInstance().getExternalContext();
String url =
"http://linkGoesHere.xdo?_xpt=1&_xf=pdf&rec_num=" +
boxNumber + "&_xt=CM_RECTRANS";
try {
FacesContext.getCurrentInstance()
.getExternalContext()
.redirect(url);
} catch (IOException e) {
e.printStackTrace();
}
} else {
addMessageWarn("Box number " + boxNumber + " was not found in the system. Please try again.");
}
}
第二个URL就是这样的:
"http://linkGoesHere.xdo?_xpt=1&_xf=pdf&rec_num=" + boxNumber + "&_xt=labels";
答案 0 :(得分:0)
到目前为止,我已经将这项工作付诸实施,而另一方面却有一些问题,我必须完成这项工作(下文提及)。
我继续使用onclick打开两个网址:
<p:commandButton value="Open / Print Documentation" icon="fa fa-folder-open"
id="ajax" style="height:40px;" update="growl"
rendered='#{userManager.hasRole("RecordsManagementEndUsers")}'
onclick = "window.open('http://linkGoesHere.xdo?_xpt=1&_xf=pdf&rec_num=' + #{dashboardView.boxNumber} + '&_xt=labels');
window.open('http://linkGoesHere.xdo?_xpt=1&_xf=pdf&rec_num=' + #{dashboardView.boxNumber} + '&_xt=CM_RECTRANS');">
它成功打开了两个链接,但现在我需要确定一种方法来验证何时找不到盒号,这是我以前在Java端做的。
因此,在我的情况下,它可能不是一个永久的解决方案,但它是一个有效的解决方案,假设传递的值将始终生成工作链接。