Problema com primefaces

11 respostas
N

Olá, resolvi usar pela primeira vez jsf e primefaces. Só usava jsp puro.

Baixei os jars do JSF 2.0 e do Primefaces 2.2.1 e adicionei a biblioteca igual mandava no tutorial que eu assisti do Sergio Souza.

Na lib do web content tem um arquivo chamado faces-config.xml e o web.xml.

Meu web.xml está assim:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
	xmlns="http://java.sun.com/xml/ns/javaee" 
	xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
	http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
	id="WebApp_ID" version="2.5">
 
  <display-name>SignageDoor</display-name>
 
  <!-- Change to "Production" when you are ready to deploy -->
  <context-param>
    <param-name>javax.faces.PROJECT_STAGE</param-name>
    <param-value>Development</param-value>
  </context-param>
 
  <!-- Welcome page -->
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
  
   <servlet>
    <description></description>
    <display-name>ServletUsuario</display-name>
    <servlet-name>ServletUsuario</servlet-name>
    <servlet-class>classe.controle.servlet.ServletUsuario</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>ServletUsuario</servlet-name>
    <url-pattern>/ServletUsuario</url-pattern>
  </servlet-mapping>
  <servlet>
    <description></description>
    <display-name>ServletLocatario</display-name>
    <servlet-name>ServletLocatario</servlet-name>
    <servlet-class>classe.controle.servlet.ServletLocatario</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>ServletLocatario</servlet-name>
    <url-pattern>/ServletLocatario</url-pattern>
  </servlet-mapping>
  <servlet>
    <description></description>
    <display-name>ServletPonto</display-name>
    <servlet-name>ServletPonto</servlet-name>
    <servlet-class>classe.controle.servlet.ServletPonto</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>ServletPonto</servlet-name>
    <url-pattern>/ServletPonto</url-pattern>
  </servlet-mapping>
  <servlet>
    <description></description>
    <display-name>ServletEmpresa</display-name>
    <servlet-name>ServletEmpresa</servlet-name>
    <servlet-class>classe.controle.servlet.ServletEmpresa</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>ServletEmpresa</servlet-name>
    <url-pattern>/ServletEmpresa</url-pattern>
  </servlet-mapping>
  
    <!-- JSF mapping -->
  <servlet>
    <servlet-name>Faces Servlet</servlet-name>
    <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
  </servlet>
 
  <!-- Map these files with JSF -->
  <servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>/faces/*</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>*.jsf</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>*.faces</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>*.xhtml</url-pattern>
  </servlet-mapping>
</web-app>
Criei o arquivo testeprime.xhtml:
<!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:f="http://java.sun.com/jsf/core"
	xmlns:p="http://primefaces.prime.com.tr/ui">
	
<h:form>  
                  
    <p:sheet value="#{tableBean.cars}" var="car" scrollHeight="300">  
        <f:facet name="caption">  
            List of Cars  
        </f:facet>  
  
        <p:column headerText="Model" style="width:125px" sortBy="#{car.model}">  
            <h:inputText value="#{car.model}" />  
        </p:column>  
  
        <p:column headerText="Year" style="width:125px" sortBy="#{car.year}">  
            <h:inputText value="#{car.year}" onkeypress="return restrict(event)"/>  
        </p:column>  
  
        <p:column headerText="Manufacturer" style="width:125px" sortBy="#{car.manufacturer}">  
            <h:inputText value="#{car.manufacturer}" />  
        </p:column>  
  
        <p:column headerText="Color" style="width:125px" sortBy="#{car.color}">  
            <h:inputText value="#{car.color}" />  
        </p:column>  
    </p:sheet>  
  
</h:form> 

</html>
E a Classe TableBean:
package org.primefaces.examples.view;  
  
import java.io.Serializable;  
import java.util.ArrayList;  
import java.util.List;  
import java.util.UUID;  
  
import org.primefaces.examples.domain.Car;  
  
public class TableBean implements Serializable {  
      
    static {  
        colors = new String[10];  
        colors[0] = "Black";  
        colors[1] = "White";  
        colors[2] = "Green";  
        colors[3] = "Red";  
        colors[4] = "Blue";  
        colors[5] = "Orange";  
        colors[6] = "Silver";  
        colors[7] = "Yellow";  
        colors[8] = "Brown";  
        colors[9] = "Maroon";  
  
        manufacturers = new String[10];  
        manufacturers[0] = "Mercedes";  
        manufacturers[1] = "BMW";  
        manufacturers[2] = "Volvo";  
        manufacturers[3] = "Audi";  
        manufacturers[4] = "Renault";  
        manufacturers[5] = "Opel";  
        manufacturers[6] = "Volkswagen";  
        manufacturers[7] = "Chrysler";  
        manufacturers[8] = "Ferrari";  
        manufacturers[9] = "Ford";  
    }  
  
    private final static String[] colors;  
  
    private final static String[] manufacturers;  
      
    private List<Car> cars;  
      
    public TableBean() {  
        cars = new ArrayList<Car>();  
          
        populateRandomCars(cars, 50);  
    }  
      
    private void populateRandomCars(List<Car> list, int size) {  
        for(int i = 0 ; i < size ; i++)  
            list.add(new Car(getRandomModel(), getRandomYear(), getRandomManufacturer(), getRandomColor()));  
    }  
      
    public List<Car> getCars() {  
        return cars;  
    }  
  
    private int getRandomYear() {  
        return (int) (Math.random() * 50 + 1960);  
    }  
      
    private String getRandomColor() {  
        return colors[(int) (Math.random() * 10)];  
    }  
      
    private String getRandomManufacturer() {  
        return manufacturers[(int) (Math.random() * 10)];  
    }  
      
    private String getRandomModel() {  
        return UUID.randomUUID().toString().substring(0, 8);  
    }  
}

No arquivo testeprime.xhtml se eu ponho xmlns:p="http://primefaces.prime.com.tr/ui" ele desabita o autocomplete, se eu tiro, ele habilita.

Na classe TableBean o erro aparece apartir do import org.primefaces.examples.domain.Car;

Não sei como fazer o primefaces funcionar. Segui um tutorial bacana, mas na hora de botar pra rodar dá problema.
Tenho que fazer isto funcionar com urgência.

Obrigado pela atenção de todos!

11 Respostas

M

Vc importou a lib de exemplos do primefaces?? essa classe nao pertence a lib padrao.

[]'s

N

Não, esta lib não vem quando baixo primefaces não?
Como baixá-la.

M

http://code.google.com/p/primefaces/source/browse/examples/trunk/prime-showcase/src/?r=2274#src%2Fmain%2Fjava%2Forg%2Fprimefaces%2Fexamples%2Fdomain
veja isso

N

Parece que não tem downloads lá.

Quando eu for fazer com dados do banco eu não preciso dessas bibliotecas não?

N

Só mais uma coisa sem querer ser chato.

o web.xml e a tag xmlns:p="http://primefaces.prime.com.tr/ui estão ok?

M

newuser:
Parece que não tem downloads lá.

Quando eu for fazer com dados do banco eu não preciso dessas bibliotecas não?

nao, essas classes sao de uso dos exemplos do showcase do site. por isso nao pertencem a api padrao.
realmente nao tem download, mas da um copy e colay q resolve heheheh

M

newuser:
Só mais uma coisa sem querer ser chato.

o web.xml e a tag xmlns:p="http://primefaces.prime.com.tr/ui estão ok?

o web.xml funciona, porem nao precisa de tantas configuracoes se for um projeto novo, atualmente somente esse mapeamente eh necessario. os .faces e .jsf eram usados na versao anterior do jsf.

<servlet-mapping> <servlet-name>Faces Servlet</servlet-name> <url-pattern>*.xhtml</url-pattern> </servlet-mapping>

a tag xmlns:p="http://primefaces.prime.com.tr/ui esta correta

N

Obrigado por tudo e sem querer abusar,então se a lib de exemplos não vem com o primefaces como importá-la e porque será que quando eu coloco a tag xmlns:p=“http://primefaces.prime.com.tr/ui” ele desabita o autocomplete, se eu tiro, ele habilita?

No mais acho que é só isso. Não posso acessar meu projeto agora porque não estou no meu pc mas você me esclareceu muita coisa.

OBRIGADO. :lol:

M

esse do autocomplete eu fico devendo, nunca usei e confesso que nunca nem briquei pra ver o funcionamento.

[]'s

N

Tá tudo ok gente. Obrigado mais uma vez!

E

Está começando um projeto ? Poderia já começar pelo primefaces 3.1. Versão 2.2 não tem mais correções.

Quanto ao seu problema, poste aqui o que importou nas bibliotecas.

Criado 7 de março de 2012
Ultima resposta 8 de mar. de 2012
Respostas 11
Participantes 3