【发布时间】:2012-04-17 09:49:05
【问题描述】:
我正在处理一个 jsf 应用程序,该应用程序在某个时间需要在新选项卡中打开一个外部页面,使第一页保持活动状态。我需要找到一种方法来让应用程序执行,只需单击一下按钮:
- 在新标签页中重定向到外部 URL
- 在原始页面中禁用按钮本身的操作
我尝试过使用<outputLink />,但它没有操作属性。
我试过使用<commandLink />,但它无法重定向到外面。
我还尝试了 <commandLink /> 和 target="_blank" 以及在支持 bean 中编码的重定向:
<h:commandLink onclick="submit();" target="_blank" action="#{myBean.execute}" disabled="#{myBean.linkDisabled}" value="external link" />
并且,在支持 bean 中:
public String execute() {
linkDisabled = true;
try{
ExternalContext externalContext = FacesContext.getCurrentInstance().getExternalContext();
externalContext.redirect(Constants.EXTERNAL_URL);
} catch(Exception e){
throw new FacesException("Redirection failed");
}
return THIS_PAGE;
}
在新选项卡中打开了一个页面,但它是当前页面,而不是 URL Constants.EXTERNAL_URL 的页面,并且该按钮仍处于启用状态。不显示错误消息。有什么建议吗?
提前致谢,安德里亚
【问题讨论】: