[Resolvido]dúvida show case select do primefaces

2 respostas
ribclauport

Gostaria de saber se alguém conseguiu fazer funcionar o exemplo de Double Combo do site do prime faces, entrei nesse link

http://www.primefaces.org/showcase-labs/ui/pprSelect.jsf

Copiei o codigo como estava no site, utilizando a versão 3.4 do prime, porém na hora que tento submeter com os dois combos, a requisiçao nem chega no managed bean, da erro de dado não valido no segundo combo, se eu não preencher o segundo combo vai beleza, como não da erro no console, e não chega no managed bean, eu não sei o que fazer.

se alguém puder me ajudar:

package org.primefaces.examples.view;  
  
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.context.FacesContext;
@ManagedBean(name="pprBean")
public class PPRBean implements Serializable {  
  
    /**
	 * 
	 */
	
	private static final long serialVersionUID = 1L;

	private String city;  
  
    private String suburb;  
      
    private Map<String,String> cities = new HashMap<String, String>();  
  
    private Map<String,Map><String,String>> suburbsData = new HashMap<String, Map><String,String>>();  
      
    private Map<String,String> suburbs = new HashMap<String, String>();  
  
    public PPRBean() {  
        cities.put("Istanbul", "Istanbul");  
        cities.put("Ankara", "Ankara");  
        cities.put("Izmir", "Izmir");  
          
        Map<String,String> suburbsIstanbul = new HashMap<String, String>();  
        suburbsIstanbul.put("Kadikoy", "Kadikoy");  
        suburbsIstanbul.put("Levent", "Levent");  
        suburbsIstanbul.put("Cengelkoy", "Cengelkoy");  
          
        Map<String,String> suburbsAnkara = new HashMap<String, String>();  
        suburbsAnkara.put("Kecioren", "Kecioren");  
        suburbsAnkara.put("Cankaya", "Cankaya");  
        suburbsAnkara.put("Yenimahalle", "Yenimahalle");  
          
        Map<String,String> suburbsIzmir = new HashMap<String, String>();  
        suburbsIzmir.put("Cesme", "Cesme");  
        suburbsIzmir.put("Gumuldur", "Gumuldur");  
        suburbsIzmir.put("Foca", "Foca");  
          
        suburbsData.put("Istanbul", suburbsIstanbul);  
        suburbsData.put("Ankara", suburbsAnkara);  
        suburbsData.put("Izmir", suburbsIzmir);  
    }  
      
    public String getCity() {  
        return city;  
    }  
  
    public void setCity(String city) {  
        this.city = city;  
    }  
  
    public String getSuburb() {  
        return suburb;  
    }  
  
    public void setSuburb(String suburb) {  
        this.suburb = suburb;  
    }  
  
    public Map<String, String> getCities() {  
        return cities;  
    }  
  
    public void setCities(Map<String, String> cities) {  
        this.cities = cities;  
    }  
      
    public Map<String, Map><String, String>> getSuburbsData() {  
        return suburbsData;  
    }  
  
    public void setSuburbsData(Map<String, Map><String, String>> suburbsData) {  
        this.suburbsData = suburbsData;  
    }  
      
    public Map<String, String> getSuburbs() {  
        return suburbs;  
    }  
  
    public void setSuburbs(Map<String, String> suburbs) {  
        this.suburbs = suburbs;  
    }  
      
    public void handleCityChange() {  
        if(city !=null && !city.equals(""))  
            suburbs = suburbsData.get(city);  
        else  
            suburbs = new HashMap<String, String>();  
    }  
  
    public void displayLocation() {  
        FacesMessage msg = new FacesMessage("Selected", "City:" + city + ", Suburb: " + suburb);  
  
        FacesContext.getCurrentInstance().addMessage(null, msg);  
    }  
}
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
    xmlns:ui="http://java.sun.com/jsf/facelets"
	xmlns:h="http://java.sun.com/jsf/html"
	xmlns:p="http://primefaces.org/ui"
	xmlns:f="http://java.sun.com/jsf/core">
<h:head>
</h:head>
    <h:form id="form">  
      
        <p:growl id="msgs" showDetail="true"/>  
                      
        <p:panel header="Double Combo" style="margin-bottom:10px;">  
            <h:panelGrid columns="2" cellpadding="5">  
                <p:selectOneMenu id="city" value="#{pprBean.city}">  
                    <f:selectItem itemLabel="Select City" itemValue="" />  
                    <f:selectItems value="#{pprBean.cities}" />  
                    <p:ajax update="suburbs"  
                            listener="#{pprBean.handleCityChange}" />  
                </p:selectOneMenu>  
      
                <p:selectOneMenu id="suburbs" value="#{pprBean.suburb}">  
                    <f:selectItem itemLabel="Select Suburb" itemValue="" />  
                    <f:selectItems value="#{pprBean.suburbs}" />  
                </p:selectOneMenu>  
            </h:panelGrid>  
      
            <p:separator />  
              
            <p:commandButton value="Submit" update="msgs" actionListener="#{pprBean.displayLocation}" id="btnSubmit"/>  
      
        </p:panel>  
      
    </h:form>  
</html>

2 Respostas

Hebert_Coelho

Não sei se esse é o seu problema, mas não está faltando o <h:body> não?

ribclauport

Opa, então estou começando com o prime faces, estou trabalhando com o richfaces e jsf 1.2 com jboss seam, então os escopos e pormenores do jsf 2 e primefaces, eu não conheço bem, então apenas defini o escopo no managed bean e funcionou.

@ViewScoped

Criado 9 de setembro de 2012
Ultima resposta 9 de set. de 2012
Respostas 2
Participantes 2