(RESOLVIDO) p:selectOneMenu não funcional dentro do dialog - Primefaces 3.4.2

Boa Tarde

Estou tendo problemas com o p:selectOneMenu do primefaces 3.4.2, o mesmo não quer funcionar dentro do dialog, sempre retorna null.

O mesmo código rodando fora do dialog executa de boa. Segue código.

<h:panelGrid columns="2"> <h:outputText value="URL_A:" style="font-weight: bold"/> <p:selectOneMenu id="city" value="#{treeLayersBean.city}"> <f:selectItem itemLabel="Select City" itemValue="" /> <f:selectItems value="#{treeLayersBean.cities}" /> <p:ajax update="tableLayers,messages" listener="#{treeLayersBean.handleCityChange}" /> </p:selectOneMenu> </h:panelGrid>

A chamada do meu dialog tem sido através de um commandButton , conforme código abaixo:

<p:commandButton value="GeoServer" icon="ui-icon-document" onclick="dialogLayersGeoserver.show()"></p:commandButton> 

Obs: Meu Bean é SessionScope

Já tentei colocar event=“change” no p:ajax,invocar o dialog através de oncomplete=“dialogLayersGeoserver.show()” mas tudo foi em vão!

O mais barato é que o mesmo fonte no meu note roda de boa e na empresa não quer rodar, a única diferença visível é a versão do NetBeans 7.0 (Note), NetBeans 7.1 (Work).

Nesta manhã atualizei meu NetBeans(Work) para 7.2.1 com Mojarra 2.1.6, PrimeFaces 3.4.2 e Glassfish 3.1.2, porém mesmo assim nada!

No note está rodando com Primefaces 3.3.1 e GlassFish 3.1.

Li sobre alguns usuários reclamando sobre o mesmo tópico na net.

Desde já agradeço pela ajuda!

posta o form completo e a classe também para poder dar uma analizada.

Bom Dia

Segue lógica. Agradeço pela atenção.

Meu index foi feito com os “problemáticos” <p:layout, segue abaixo a chamada para minha página:

<p:layoutUnit position="west" size="300" header="Layers" collapsible="false"> <h:form id="formWest"> <ui:include src="/paginas/gis/teste.xhtml" /> </h:form> </p:layoutUnit>
Obs: Alguns usuários tem o padrão de declarar os dialog fora do p:layout, eu até o momento utilizo de boa, o único detalhe é acrescentar appendToBody=“true” no dialog.

Segue página:

[code]<ui:composition xmlns=“http://www.w3.org/1999/xhtml
xmlns:h=“http://java.sun.com/jsf/html
xmlns:f=“http://java.sun.com/jsf/core
xmlns:ui=“http://java.sun.com/jsf/facelets
xmlns:p=“http://primefaces.org/ui”>
<p:growl id=“msgs” showDetail=“true”/>

<p:commandButton value=“GeoServer” icon=“ui-icon-document” onclick=“dialogLayersGeoserver.show()”></p:commandButton>

<h:panelGrid columns="2" cellpadding="5">
    <p:selectOneMenu id="cityA" value="#{testeBean.city}">
        <f:selectItem itemLabel="Select City" itemValue="" />
        <f:selectItems value="#{testeBean.cities}" />
        <p:ajax update="msgs"
                listener="#{testeBean.handleCityChange}" />
    </p:selectOneMenu>
</h:panelGrid>

<p:dialog header="Layers Geoserver" widgetVar="dialogLayersGeoserver" 
      width="820" height="650" 
      resizable="false" draggable="false" modal="true" appendToBody="true"> 
			
    <h:panelGrid columns="2" cellpadding="5">
        <p:selectOneMenu id="city" value="#{testeBean.city}">
            <f:selectItem itemLabel="Select City" itemValue="" />
            <f:selectItems value="#{testeBean.cities}" />
            <p:ajax update="msgs"
                    listener="#{testeBean.handleCityChange}" />
        </p:selectOneMenu>

        <p:separator />  
    </h:panelGrid>
</p:dialog>  

</ui:composition>[/code]

Segue Bean:

[code]import java.io.Serializable;
import java.util.HashMap;
import java.util.Map;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;

@ManagedBean
@SessionScoped
public class TesteBean implements Serializable {

private String city;

private Map<String,String> cities = new HashMap<String, String>();


public TesteBean() {
	cities.put("Istanbul", "Istanbul");
	cities.put("Ankara", "Ankara");
	cities.put("Izmir", "Izmir");
}

public String getCity() {
	return city;
}

public void setCity(String city) {
	this.city = city;
}

public Map<String, String> getCities() {
	return cities;
}

public void setCities(Map<String, String> cities) {
	this.cities = cities;
}

public void handleCityChange() {
        FacesMessage msg = new FacesMessage("Selected", "City:" + city);

        FacesContext.getCurrentInstance().addMessage(null, msg);
}

}[/code]

Boa Tarde

Voltei meu projeto para primefaces 3.3.1 e tudo voltou a funcionar. :shock:

Outro problema no Primefaces 3.4.2 é o componente ContextMenu :cry:

Vou esperar a versão 3.5, no momento a 3.3.1 me atende. :smiley: