我在JSF应用程序,在一定的时间需要在新标签打开外部页的工作,离开第一页活跃。 我需要找到一种方法,使应用程序执行,在一个单一的按一下按钮:
- 一个重定向到一个外部URL在新标签
- 它禁用在原始页面的按钮本身的行动
我已经使用试过<outputLink />
但它没有action属性。 我已经使用试过<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
和按钮仍处于启用状态。 示出没有错误消息。 任何建议?
在此先感谢,安德烈