primefaces commandlink不会显示模态对话框

时间:2014-10-23 17:22:14

标签: jsf primefaces

你好我有一个在我的烘焙bean中执行方法的commandLink,该方法调用一个构建字符串的ejb并将其作为bean的一个属性(带有getter和setter),在执行该方法后应该引发一个模态对话框只显示该属性的值,但它没有,我看到构建链运行的方法,但没有解除对话,这是我的代码:

XHTML:

<ui:composition>
<p:panelGrid columns="3" style="width: 100%" >
<h:form id="headerForm">
<p:column style="width: 15%;height:auto; text-align: center;">
<p:graphicImage value="#{loginBean.url}" style="align:center;"/>
</p:column>                      
<p:column>
<div align="center">
<h:outputText styleClass="titleHeader" value="#{loginBean.entityName}" />
</div>
</p:column>
<p:column style="width: 15%;height:auto; text-align: center;">
<div align="right">
<h:commandLink onComplete="PF('dlg').show(); return false;" type="button" ajax="false" action="#                {xxxxBean.createString}">
<h:outputText value="Contact" />
</h:commandLink>
</div>
</p:column>
</h:form> 
</p:panelGrid>
<p:dialog id="dlg" header="Some title here" widgetVar="dlg" modal="true">  
<h:outputText value="#{xxxxBean.stringBuild}" />  
</p:dialog>     
</ui:composition>

支持bean:

@ManagedBean
@SuppressWarnings("serial")
public class XxxxBean implements Serializable{

private String stringBuild;
private someBeanRemote ejb;

public XxxxBean() {
// TODO Auto-generated constructor stub   
try{
ejb = EjbConsumer.getRemoteEjb();
}catch(Exception e){
e.printStackTrace();
}

}    

public void createString(){
List<someObject> list = ejb.findAllActiveObjects(Constants.TOP);
String temp = "";
if( list!=null && list.size() > 0 ){
for(int i=0; i < list.size(); i++){
temp += list.get(i).getName() + "<br/>";        
}

this.stringBuild= temp;
}       

System.out.println(this.stringBuild);

}

public void setStringBuild(String stringBuild) {
this.stringBuild= stringBuild;
}

public String getStringBuild() {
return stringBuild;
}

}

提前致谢!!!

1 个答案:

答案 0 :(得分:1)

您正在ajax=false使用oncomplete

oncomplete:客户端回调在ajax请求完成时执行。

更改为:

<p:commandLink oncomplete="PF('dlg').show();" action="#{yourBean.youraction}"></p:commandLink>

这是默认的ajax = true,一切都应该有效