2015-08-24 95 views
1

新窗口我用打开一个弹出这个代码在JavaScript:打开从托管bean

function showMyPage() { 
window.open('./showMyPage.xhtml','mywindow', 'resizable=no,toolbar=no,scrollbars=yes,height=450,width=530,top=145,left=235'); 
return true; 

}

不过,我想从一个托管Bean做到这一点,这可能吗?

例子,我有以下的情况下,从一个p:dataTable中:

<p:column > 
          <h:commandLink action="#{tableBean.list(ind)}" > 
           <i class="cus-find"></i> 
          </h:commandLink> 
         </p:column> 

我要调用一个托管Bean,并通过它打开一个弹出,这可能吗?

public String list(InfoListVO ind){ 
     FacesContext.getCurrentInstance().getExternalContext().getSessionMap().put("InfoListVO ", ind); 

//here I want to return my page in a popud directly from a Managed Bean 
    return "myPage"; 
} 

在此先感谢!

+1

嘿,你为什么要在你的托管bean? – Ced

+0

由于我想在再次在其他窗口中呈现我的表之前处理参数,因此,我的表的行是用于调整另一个窗口中另一个表的大小的参数 –

+0

非常感谢,我发现此RequestContext.getCurrentInstance()。execute( “PF( 'nomeDoDialog')显示();”); –

回答

1

这不是托管的Bean,但我认为它会为你的目的做伎俩。

<p:commandLink action="#{tableBean.list(ind)}" oncomplete="showMyPage()"> 
     <i class="cus-find"></i> 
    </p:commandLink> 

您可以在action中调用的函数中执行您想要的业务,然后在您发送它的参数之后执行javascript。