Arquivo xhtml não reconhece as tags do primefaces

10 respostas
J

Bom galera, já vários tópicos e discussões sobre o meu problema, mas nenhum não conseguiu resolver o meu problema, que é o seguinte, em um cadastro simples de Pessoa, no meu arquivo xhtml não aparece as tags do primefaces, segue o código das classes:

PessoaModel

package model;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import java.util.Date;

import org.hibernate.validator.Length;
import org.springframework.format.annotation.DateTimeFormat;



@Entity
@Table(name="pessoa")
public class Pessoa {
	
	@Id
	@SequenceGenerator(name = "sequence_pessoa", sequenceName = "sequence_pessoa", initialValue = 1, allocationSize = 1)
	@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "sequence_pessoa")
	private Long id;
	
	@Length(max=60)
	private String nome;
	
	@Length(max=100)
	private String email;
	
	@Length(max=14)
	private String cpf_cnpj;
	
	@Length(max=10)
	private String senha;
	
	@Temporal(value=TemporalType.DATE)
    @DateTimeFormat(pattern="dd/MM/yyyy")
	private Date dt_nascimento;

	public Long getId() {
		return id;
	}

	public void setId(Long id) {
		this.id = id;
	}

	public String getNome() {
		return nome;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}

	public String getEmail() {
		return email;
	}

	public void setEmail(String email) {
		this.email = email;
	}

	public String getCpf_cnpj() {
		return cpf_cnpj;
	}

	public void setCpf_cnpj(String cpf_cnpj) {
		this.cpf_cnpj = cpf_cnpj;
	}

	public String getSenha() {
		return senha;
	}

	public void setSenha(String senha) {
		this.senha = senha;
	}

	public Date getDt_nascimento() {
		return dt_nascimento;
	}

	public void setDt_nascimento(Date dt_nascimento) {
		this.dt_nascimento = dt_nascimento;
	}

	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result
				+ ((cpf_cnpj == null) ? 0 : cpf_cnpj.hashCode());
		result = prime * result
				+ ((dt_nascimento == null) ? 0 : dt_nascimento.hashCode());
		result = prime * result + ((email == null) ? 0 : email.hashCode());
		result = prime * result + ((id == null) ? 0 : id.hashCode());
		result = prime * result + ((nome == null) ? 0 : nome.hashCode());
		result = prime * result + ((senha == null) ? 0 : senha.hashCode());
		return result;
	}

	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		Pessoa other = (Pessoa) obj;
		if (cpf_cnpj == null) {
			if (other.cpf_cnpj != null)
				return false;
		} else if (!cpf_cnpj.equals(other.cpf_cnpj))
			return false;
		if (dt_nascimento == null) {
			if (other.dt_nascimento != null)
				return false;
		} else if (!dt_nascimento.equals(other.dt_nascimento))
			return false;
		if (email == null) {
			if (other.email != null)
				return false;
		} else if (!email.equals(other.email))
			return false;
		if (id == null) {
			if (other.id != null)
				return false;
		} else if (!id.equals(other.id))
			return false;
		if (nome == null) {
			if (other.nome != null)
				return false;
		} else if (!nome.equals(other.nome))
			return false;
		if (senha == null) {
			if (other.senha != null)
				return false;
		} else if (!senha.equals(other.senha))
			return false;
		return true;
	}
	
	

}

PessoaDao

package dao;

import java.util.List;

import model.Pessoa;

import org.hibernate.Criteria;
import org.hibernate.Session;

import util.HibernateUtil;

public class PessoaDao {

	private Session session; 
	 
	public void inserir(Pessoa pessoa){
		session = HibernateUtil.getSessionFactory().openSession();

		try{
			session.beginTransaction();
			session.save(pessoa);
			session.getTransaction().commit();

		}finally{
			session.close();

		}
	}

	public void alterar(Pessoa pessoa){
		session = HibernateUtil.getSessionFactory().openSession();

		try{
			session = HibernateUtil.getSessionFactory().openSession();
			session.beginTransaction();
			session.saveOrUpdate(pessoa);
			session.getTransaction().commit();
		}finally{
			session.close();

		}
	}

	public void excluir(Pessoa pessoa){
		session = HibernateUtil.getSessionFactory().openSession();

		try{
			session = HibernateUtil.getSessionFactory().openSession();
			session.beginTransaction();
			session.delete(pessoa);
			session.getTransaction().commit();

		}finally{
			session.close();

		}
	}

	@SuppressWarnings({ "unchecked", "rawtypes" })
	public List  listar(){
		session = HibernateUtil.getSessionFactory().openSession();

		try{
			Criteria cri = session.createCriteria(Pessoa.class);
			return cri.list();
		}finally{
			session.close();

		}
	}
}

PessoaBean

package bean;

import java.util.ArrayList;
import java.util.List;
 
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.event.ActionEvent;

 
import model.Pessoa;
import dao.PessoaDao;
 
@ManagedBean(name="pessoaBean")
@ViewScoped
public class PessoaBean {
	
 
	Pessoa pessoa = new Pessoa();
 
	@SuppressWarnings("rawtypes")
	List pessoas = new ArrayList(); 

	
	//construtor
	public PessoaBean(){
		pessoas = new PessoaDao().listar();
		pessoa = new Pessoa();
	}
 
	
	public void cadastrar(ActionEvent actionEvent){
		new PessoaDao().inserir(pessoa);
		pessoas = new PessoaDao().listar();
		pessoa = new Pessoa();
	}
 
	public void alterar(ActionEvent actionEvent){
		new PessoaDao().alterar(pessoa);
		pessoas = new PessoaDao().listar();
		pessoa = new Pessoa();
	}
	public void excluir(ActionEvent actionEvent){
		new PessoaDao().excluir(pessoa);
		pessoas = new PessoaDao().listar();
		pessoa = new Pessoa();
	}
 
	//getters and setters
	public Pessoa getPessoa() {
		return pessoa;
	}
 
	public void setPessoa(Pessoa pessoa) {
		this.pessoa = pessoa;
	}
 
	public List getPessoas() {
		return pessoas;
	}
 
	public void setPessoas(List pessoas) {
		this.pessoas = pessoas;
	}
}

pessoa.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:f="http://java.sun.com/jsf/core"
	xmlns:h="http://java.sun.com/jsf/html"
	xmlns:ui="http://java.sun.com/jsf/facelets"
	xmlns:p="http://primefaces.org/ui">

<h:body>

	<div align="center">
		<h:form id="formPrincipal">


			<p:dataTable var="lista" value="#{pessoaBean.pessoas}"
				id="tabelaPessoas" style="width:70%">
				<f:facet name="header">Lista de Pessoas</f:facet>

				<p:column headerText="Nome">

					<h:outputText value="#{lista.nome}" />
				</p:column>
				<p:column headerText="Data Nascimento">

					<h:outputText value="#{lista.dt_nascimento}" />
				</p:column>
				<p:column headerText="Email">

					<h:outputText value="#{lista.email}" />
				</p:column>
				<p:column headerText="CPF/CNPJ">

					<h:outputText value="#{lista.cpf_cnpj}" />
				</p:column>
				<p:column headerText="Ações">
					<p:commandLink title="Alterar" update=":formAlterar:Alterar"
						oncomplete="dialogAlterar.show()" immediate="true">
						<p:graphicImage value="./imagens/edit_icon.png" />
						<f:setPropertyActionListener target="#{pessoaBean.pessoa}"
							value="#{lista}" />
					</p:commandLink>
					<p:commandLink title="Excluir" update=":formExcluir:Excluir"
						oncomplete="confirmation.show()" immediate="true">
						<p:graphicImage value="./imagens/del_icon.png" />
						<f:setPropertyActionListener target="#{pessoaBean.pessoa}"
							value="#{lista}" />
					</p:commandLink>
				</p:column>

			</p:dataTable>




			<p:commandButton value="Cadastrar" id="cadastrar"
				oncomplete="dialogCadastrar.show()" />


		</h:form>

	</div>
	<h:form id="formAlterar">
		<p:dialog header="Alterar" widgetVar="dialogAlterar" modal="true"
			id="Alterar">
			<p:panelGrid id="panelAlterar" columns="2">
				<h:outputText value="Nome:" />
				<p:inputText value="#{pessoaBean.pessoa.nome}" />
				<h:outputText value="Data Nascimento" />
				<p:inputText value="#{pessoaBean.pessoa.dt_nascimento}" />
				<h:outputText value="Email" />
				<p:inputText value="#{pessoaBean.pessoa.email}" />
				<h:outputText value="CPF/CNPJ" />
				<p:inputText value="#{pessoaBean.pessoa.cpf_cnpj}" />
				<h:outputText value="Senha" />
				<p:inputText value="#{pessoaBean.pessoa.senha}" />
			</p:panelGrid>
			<p:commandButton value="Alterar"
				actionListener="#{pessoaBean.alterar}"
				update=":formPrincipal:tabelaPessoas"
				oncomplete="dialogAlterar.hide()" />
		</p:dialog>
	</h:form>

	<h:form id="formCadastrar">
		<p:dialog header="Cadastrar" widgetVar="dialogCadastrar" modal="true">
			<p:panelGrid id="panelCadastrar" columns="2">
				<h:outputText value="Nome:" />
				<p:inputText value="#{pessoaBean.pessoa.nome}" />
				<h:outputText value="Data Nascimento" />
				<p:inputText value="#{pessoaBean.pessoa.dt_nascimento}" />
				<h:outputText value="Email" />
				<p:inputText value="#{pessoaBean.pessoa.email}" />
				<h:outputText value="CPF/CNPJ" />
				<p:inputText value="#{pessoaBean.pessoa.cpf_cnpj}" />
				<h:outputText value="Senha" />
				<p:inputText value="#{pessoaBean.pessoa.senha}" />
			</p:panelGrid>
			<p:commandButton value="Cadastrar"
				actionListener="#{pessoaBean.cadastrar}"
				update=":formPrincipal:tabelaPessoas"
				oncomplete="dialogCadastrar.hide()" />
		</p:dialog>
	</h:form>
	<h:form id="formExcluir">
		<p:confirmDialog id="Excluir"
			message="Você gostaria de Excluir #{pessoaBean.pessoa.nome}?"
			header="Excluir" severity="alert" widgetVar="confirmation">

			<p:commandButton id="confirm" value="Sim"
				oncomplete="confirmation.hide()"
				actionListener="#{pessoaBean.excluir}"
				update=":formPrincipal:tabelaPessoas" />
			<p:commandButton id="decline" value="Não"
				onclick="confirmation.hide()" type="button" />

		</p:confirmDialog>
	</h:form>

</h:body>
</html>

web.xml

<?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_3_0.xsd"
	id="WebApp_ID" version="3.0">
	<description>Sistema de AutoPecas</description>
	<display-name>SAP</display-name>
	<context-param>
		<param-name>javax.faces.PROJECT_STAGE</param-name>
		<param-value>Production</param-value>
	</context-param>
	<context-param>
		<param-name>javax.facelets.REFRESH_PERIOD</param-name>
		<param-value>10</param-value>
	</context-param>
	<context-param>
		<param-name>javax.faces.DEFAULT_SUFFIX</param-name>
		<param-value>.xhtml</param-value>
	</context-param>
	<context-param>
		<param-name>javax.faces.STATE_SAVING_METHOD</param-name>
		<param-value>server</param-value>
	</context-param>
	<context-param>
		<param-name>org.ajax4jsf.VIEW_HANDLERS</param-name>
		<param-value>com.sun.facelets.FaceletViewHandler</param-value>
	</context-param>
	<context-param>
		<param-name>com.sun.faces.validateXml</param-name>
		<param-value>true</param-value>
	</context-param>
	<context-param>
		<param-name>com.sun.faces.verifyObjects</param-name>
		<param-value>false</param-value>
	</context-param>
	<context-param>
		<param-name>com.sun.faces.enableRestoreView11Compatibility</param-name>
		<param-value>true</param-value>
	</context-param>
	<context-param>
		<param-name>org.ajax4jsf.handleViewExpiredOnClient</param-name>
		<param-value>true</param-value>
	</context-param>
	<context-param>
		<param-name>javax.facelets.BUILD_BEFORE_RESTORE</param-name>
		<param-value>true</param-value>
	</context-param>
	<context-param>
		<param-name>hibernateLocation</param-name>
		<param-value>/WEB-INF/classes/hibernate.properties</param-value>
	</context-param>
	<context-param>
		<param-name>javax.faces.CONFIG_FILES</param-name>
		<param-value>/WEB-INF/faces-config.xml</param-value>
	</context-param>
	<context-param>
		<param-name>log4jConfigLocation</param-name>
		<param-value>/WEB-INF/classes/log4j.properties</param-value>
	</context-param>
	<servlet>
		<servlet-name>Resource Servlet</servlet-name>
		<servlet-class>org.primefaces.resource.ResourceServlet</servlet-class>
	</servlet>
	<servlet-mapping>
		<servlet-name>Resource Servlet</servlet-name>
		<url-pattern>/primefaces_resource/*</url-pattern>
	</servlet-mapping>
	<context-param>
		<param-name>primefaces.skin</param-name>
		<param-value>none</param-value>
	</context-param>
	<servlet>
		<servlet-name>Faces Servlet</servlet-name>
		<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
		<load-on-startup>1</load-on-startup>
	</servlet>
	<servlet-mapping>
		<servlet-name>Faces Servlet</servlet-name>
		<url-pattern>/app/*</url-pattern>
	</servlet-mapping>
	<session-config>
		<session-timeout>30</session-timeout>
	</session-config>
	<welcome-file-list>
		<welcome-file>app/index.xhtml</welcome-file>
	</welcome-file-list>
</web-app>

Então, ele executa tudo certo, mas aparece apenas o título do meu pessoa.xhtml que é Lista de Pessoas.

Alguém pode me ajudar? Vou ficar no aguardo. Abraços!

10 Respostas

A

Acerte o web.xml, faltou o “*” antes de “.xhtml”.

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

J

Acabei de fazer isso, e mesmo assim ainda não funcionou =/

E

Colocando tags do JSF vai normal? Adicionou o jar ao BuildPath?

J

Já adicionei vários JAR’s. Sabe quais são? Pra eu conferir aqui.

E

Nesse caso seria o do primefaces. O nome normalmente é primefaces-[versão].jar
Se não tiver, crie a pasta lib dentro de WEB-INF. Nele você adiciona o jar. Depois (se estiver utilizando eclipse) botão direito no projeto > Build Path > Configure Build Path. Na aba Libraries, selecione Add Jars e selecione o(s) jar(s) que você colocou na pasta lib.

J

Eu tenho o primefaces-3.5.jar

Certinho ali como vc falou e mesmo assim não deu!
=/

E

Se botar tag no JSF aparece normal? tipo h:outputText… Qual é versão do JSF e do primefaces que está usando?

J

Sim, se eu colocar as tags ele dá o auto complete do JSf normal.
As versões do jsf é jsf-impl.jar creio que é o 2.0
e do primefaces é o 3.5

E

Vish, então só começando tudo de novo pra ver o que é haha
Olhando pelo seu código a única coisa que não tem são as tags <h:head> e </h:head>, mas não acredito que seja só por isso.

J

Pois é, acabei de adicioná-las, mesmo assim ainda não dá.

Creio que seja algum conflito de lib, vou começar um de novo pra ver se dar certo.
Valeu ai!
Qualquer coisa posto aqui.

Criado 19 de dezembro de 2013
Ultima resposta 20 de dez. de 2013
Respostas 10
Participantes 3