gpt4 book ai didi

java - JSF- does not invoke new window from backing bean

转载 作者:行者123 更新时间:2023-12-01 13:06:39 25 4
gpt4 key购买 nike

我的问题与此类似issue
我有一个 in XHTML,它调用支持 bean 方法来调用带有预先构造的 URL 的新窗口。但我的问题是它没有打开 URL。

我的 XHTML 代码如下

<小时/>
 <h:commandButton  style="margin-left:1em;width: auto; height: 20px;font-size:85%"
value="WebPhone" id="lwebpne"rendered="#{Bean.editCmdActionflg == true and (Bean.selectedSearchSysDetRow.isfeed != '1' or Bean.selectedOverviewDetails.webPheFlg == false)}"actionListener="#{Bean.webPhoneSearch}" >
<f:param name="lpid" value="lpid" />
</h:commandButton>
<小时/>


我的代码在支持 bean 中给出

public void webPhoneSearch(ActionEvent event) {
logger.info("webPhoneSearch Method Enter ..");

String param = "";

Map<String, String> params = FacesContext.getCurrentInstance()
.getExternalContext().getRequestParameterMap();

if (params.get("lpid") != null) {
System.out.println("coming inside>>>>>");
// String t_lpid = params.get("lpid");
String t_lpid = selectedOverviewDetails.getLeadPrgMgrUid();
Matcher matcher = pattern.matcher(t_lpid);
if (matcher.matches()) {
param = "this values comes from UI ";
}
}
// below is a URL where the window will launch to show the details of a person which we are search for
Url = "http:// URL for searching a person in webphone" +param;
RequestContext.getCurrentInstance().execute(
"window.open('" + Url + "')");

logger.info("webPhoneSearch Method Exit ..");

}<br/>

我的问题是点击 <h:commandbutton>当我单击 <h:commandbutton> 时,不会打开新窗口,而是在当前窗口中重新打开同一页面。
请告诉我您解决此问题的建议。

最佳答案

正如@Alexandre所说, 没有taget属性。使用

<h:commandLink target="_blank"
style="margin-left:1em;width: auto; height: 20px;font-size:85%"
value="WebPhone" id="lwebpne"
rendered="#{Bean.editCmdActionflg == true and (Bean.selectedSearchSysDetRow.isfeed != '1' or Bean.selectedOverviewDetails.webPheFlg == false)}"
actionListener="#{Bean.webPhoneSearch}">
<f:param name="lpid" value="lpid"/>
</h:commandLink>

---更新:---

如果你想触发一些javascript事件,你可以使用 。我的样本如下。

<h:commandButton style="margin-left:1em;width: auto; height: 20px;font-size:85%"
value="WebPhone" id="lwebpne" rendered="#{Bean.editCmdActionflg == true and (Bean.selectedSearchSysDetRow.isfeed != '1' or Bean.selectedOverviewDetails.webPheFlg == false)}">
<f:ajax execute="@form" render="@form" listener="#{Bean.webPhoneSearch()}" onevent="eventListener"/>
</h:commandButton>
<h:outputScript>
function eventListener(data) {
if (data.status == "complete") {
<!-- YOUR WINDOW ADDRESS HERE -->
window.open('http://google.com', '_blank');
}
}
</h:outputScript>

但我不建议使用弹出窗口。因为所有浏览器都阻止它们。我认为dialog frameworklightbox组件可能更有用。

关于java - JSF-<h :commandButton> does not invoke new window from backing bean,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23218148/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com