A implementação da nossa interface DAOProduto será nosso Stateless Session Beans.

Documentos relacionados
<h:panelgroup rendered="#{managedbeaninscricao.formulario}"> <fieldset> <legend>formulário de inscrição</legend> <h:form> <h:panelgrid columns="2">

Primefaces 3. Laboratório Passo-a-Passo. JSF - Primefaces. Prof. Leandro Rubim de Freitas Versão 1.

Introdução. Componentes básicos. Componentes avançados. PrimeFaces. Prof. Enzo Seraphim

Managed Beans e Tags JSF

PROJETO INTEGRADOR. Documentação. Aplicação de Controle de Acesso FACULDADE DE TECNOLOGIA SENAC GOIÁS. Programação com Frameworks

Regras de Navegação e Templates

Arcabouço para o desenvolvimento de aplicações Web com foco na construção da interface de usuário.

Introdução. <facelets> Templates. Configurações. Componentes. Prof. Enzo Seraphim

Projeto Java Web (WebService) LIBS:

MÓDULO Programação para Web 2

Ao fazer fix imports a anotação RequestScoped deve corresponder ao package javax.enterprise.context.requestscoped.

FUNDAÇÃO UNIVERSIDADE REGIONAL DE BLUMENAU

MÓDULO Programação para Web 2

Série Rações Semanais Namespaces e DOM/SAX Rogério Araújo

Desenvolvimento Web Avançado com JSF2, EJB3.1 e CDI

NOVO PROJETO: Dynamic web Project Estrutura do projeto:

Anotações e Navegação no JSF 2.0

Lidando com Java Obsoleto: Do Struts 1.0 ao CDI. Java na Crista da Onda

JavaServer Faces JSF

JavaServer Faces JSF

FACULDADE DE TECNOLOGIA DA PARAÍBA FATEC/PB

JavaServer Faces (JSF) Leonardo Murta

Explorando serviços Java EE

SISTEMA WEB PARA LOJAS DE ALUGUEL E VENDA DE ROUPAS

Introdução a JavaServer Faces 2

Introdução ao JSF e Primefaces

DESENVOLVIMENTO DE SOFTWARE PARA INTERNET. Prof. Emilio Parmegiani

USANDO O JSF. Programação para Internet

Evento.java. package dominio;

MÓDULO Programação para Web 2

Componentes Web do JEE

DESENVOLVIMENTO DE SOFTWARE PARA INTERNET LABORATÓRIO 3 PROF. EMILIO PARMEGIANI

MÓDULO Programação para Web 2

Lista de Exercícios Dissertativo

Componentes no Java EE

JSF. Versão 1.0. Apostila destinada ao curso com carga horária de 32 (trinta e duas) horas

HTML templates e PHP. Um ficheiro PHP é um documento HTML com código PHP embebido. Tem vantagens mas também tem desvantagens

Injeção de Dependências e Spring

JSF2 e AJAX. Desenvolvimento Web com. Construa aplicações Web mais interativas e elegantes

RESPOSTA: import java.util.arraylist; import java.util.list; class CarrinhoDeCompras2 { List<Produto> produtos;

Além do JSF: Matriz de Campos com Recursos e Práticas Incomuns

PROJETO FINANCEIROWEB GRADUAÇÃO TECNOLÓGICA EM GESTÃO DA TECNOLOGIA DA INFORMAÇÃO

Desenvolvendo uma aplicação Java EE 6 com Eclipse (parte 3)

Análise da Utilização de Padrões no Desenvolvimento de Softwares em Camadas

Como criar um EJB. Criando um projeto EJB com um cliente WEB no Eclipse

Sabemos que a classe é responsável por definir a estrutura e o comportamento de seus objetos. Portanto, os objetos são instâncias das classes.

2 Criar uma Enterprise Application que num módulo EJB irá conter um ou vários Beans.

Desenvolvimento para Web em Java. Profa Andréa Schwertner Charão DLSC/CT/UFSM Lamarck Heinsch Mestrando PPGI/CT/UFSM

JSF Facelets. Como Facelets muda a forma de desenvolver com JSF

Linguagem de Programação II Implementação

Session Bean Stateful

Design Patterns (Factory Method, Prototype, Singleton)

Exibindo barra de progresso com JSF e Primefaces

Projeto de Sistemas com Frameworks

============================== Exemplo ListView MainActivity.java

Técnicas e processos de produção. Profº Ritielle Souza

JPA Com Hibernate. Paulo Ricardo Lisboa de Almeida. 1 Universidade Positivo

Curso Superior de Banco de Dados

Computação II - Java - Prova 1 Prof. Adriano Joaquim de Oliveira Cruz /05/13. Questão: Total Pontos: Gráu:

Código-Fonte da Prática 04

Atributos e Métodos Estáticos

nome = n; cargo = c; salario = s; public void print() { System.out.println(nome cargo salario); public void aumento( double fator){

Session Beans. Modelam o estado não-persistente

Programação Orientada a Objetos II

FINAL: CÓDIGO-FONTE DA MIDLET


Universidade Federal de Uberlândia Faculdade de Computação Prof. Fabiano Azevedo Dorça Programação Orientada a Objetos II. Padrões de Projeto

UNIP - Ciência da Computação e Sistemas de Informação. Estrutura de Dados. AULA 5 Pilhas

Integração de um Gerador de Código ao FrameWeb Editor

REST. Representational State Transfer. É um estilo arquitetural usado por muitas aplicações Web para estender as suas funcionalidades.

Universidade Federal de Uberlândia Faculdade de Computação Prof. Fabiano Azevedo Dorça Programação Orientada a Objetos II. Padrões de Projeto

Introdução. Configuração. Padrão POJO. Framework Pesistência de. Mapeamento Annotation. Objetos. Persistência. Java. Objetos. Prof.

Universidade Federal de Uberlândia Faculdade de Computação Programação Orientada a Objetos II Prof. Fabiano Dorça. Padrão Observer (Observador)

JPA DAO Genérico e JPQL

Herança e Polimorfismo

Universidade São Judas Tadeu. Faculdade de Tecnologia e Ciências Exatas. Sistemas de Informação 3ASIN

Componentes do JSF. Alteracoes e atualizacoes: Gustavo Wagner 2008

Análise e Projeto Orientados por Objetos

Padrão J2EE Data Access Object (DAO)

Repositórios JPA no Projeto ecafeteria

Threads. Leonardo Gresta Paulino Murta

INF1013 MODELAGEM DE SOFTWARE

Objetivo do programa: Implementação de um analisador de Logs do Servidor Web com base nos requisitos da unidade curricular de Estatística.

MyFaces Tomahawk. Rafael De Pauli Baptista Como criar um projeto JSF

Entity Beans. Rodrigo Campiolo João Bosco M. Sobral. Computação Distribuída Sistemas de Informação

Java Server Faces 2.0 Breve introdução prá0ca

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ DEPARTAMENTO ACADÊMICO DE INFORMÁTICA CURSO DE ESPECIALIZAÇÃO EM TECNOLOGIA JAVA CEZAR AUGUSTO MEZZALIRA

Fabrício J. Barth. BandTec - Faculdade de Tecnologia Bandeirantes

Árvores. Estruturas de Dados. Prof. Vilson Heck Junior

Orientação a Objetos. Fernando Camargo 5 de junho de 2017

Na classe Utils.java no package utils existe o método readdatefromconsole():

!" # # # $ %!" " & ' ( 2

Melhorando o desempenho de aplicações em JSF

Java EE 6: A Community Update

Arquitetura de Aplicações JSP/Web. Padrão Arquitetural MVC

EXERCÍCIOS DE REVISÃO DE CONTEÚDO QUESTÕES DISSERTATIVAS

Transcrição:

DAOProduto.java import javax.ejb.local; @Local public interface DAOProduto { public static void salvarproduto(produto produto); public static void excluirproduto(produto produto); public static List<Produto> listar(); A implementação da nossa interface DAOProduto será nosso Stateless Session Beans. import javax.persistence.entitymanager; import javax.persistence.query; public class DAOProdutoImpl{ private static EntityManager entitymanager; static{ entitymanager = JPAUtil.getEntityManager(); public static void salvarproduto(produto produto) { entitymanager.persist(produto); public static void excluirproduto(produto produto) { entitymanager.remove(produto); public static List<Produto> listar() {

Query query = entitymanager.createquery("select p from Produto p"); return query.getresultlist(); Lembrado que poderíamos utilizar injeção de dependência e não utilizar nosso JPAUtil criado anteriormente. Nesse caso nosso DAOProduto seria se assemelharia a classe abaixo: import javax.ejb.local; import javax.ejb.stateless; import javax.persistence.entitymanager; import javax.persistence.entitymanagerfactory; import javax.persistence.persistenceunit; @Stateless @Local(DAOProduto.class) public class DAOProdutoImpl implements DAOProduto { @PersistenceUnit(unitName = "revisao") private static EntityManagerFactory entitymanagerfactory; private static EntityManager entitymanager; public static void salvarproduto(produto produto) { entitymanager = entitymanagerfactory.createentitymanager(); entitymanager.persist(produto); public static void excluirproduto(produto produto) { entitymanager = entitymanagerfactory.createentitymanager(); entitymanager.remove(produto); public static List<Produto> listar() {

entitymanager = entitymanagerfactory.createentitymanager(); Query query = entitymanager.createquery("select p from Produto p"); return query.getresultlist(); Agora definiremos nosso Managed Bean que será chamado ProdutoBean. import java.util.arraylist; import javax.faces.application.facesmessage; import javax.faces.bean.managedbean; import javax.faces.bean.sessionscoped; import javax.faces.context.facescontext; import javax.faces.model.selectitem; @ManagedBean(name="produto") @SessionScoped public class ProdutoBean { private Produto produto; private Long idcategoria; private List<SelectItem> categorias; private List<Produto> produtos; @EJB DAOProdutoImpl dao; public ProdutoBean(){ produto = new Produto(); produtos = DAOProdutoImpl.listar(); this.categorias = new ArrayList<SelectItem>(); this.categorias.add(new SelectItem(null, "Selecione")); ArrayList<Categoria> cats = new ArrayList<Categoria>(); cats.addall(jpautil.getentitymanager().createquery("select c from Categoria c").getresultlist());

for(categoria c:cats){ this.categorias.add(new SelectItem(c.getId(), c.getdescricao())); public String salvarproduto(){ produto.setcategoria(jpautil.getentitymanager().find(categoria.class, idcategoria)); DAOProdutoImpl.salvarProduto(produto); FacesMessage fm = new FacesMessage(FacesMessage.SEVERITY_INFO, "Produto cadastrado com sucesso!!", null); FacesContext.getCurrentInstance().addMessage(null, fm); idcategoria = null; produto = new Produto(); produtos = DAOProdutoImpl.listar(); return "produtos"; public String excluirproduto(){ DAOProdutoImpl.excluirProduto(produto); FacesMessage fm = new FacesMessage(FacesMessage.SEVERITY_INFO, "Produto removido com sucesso!!", null); FacesContext.getCurrentInstance().addMessage(null, fm); produto = new Produto(); produtos = new ArrayList<Produto>(); produtos = DAOProdutoImpl.listar(); return "produtos"; public Produto getproduto() { return produto; public void setproduto(produto produto) { this.produto = produto; public Long getidcategoria() { return idcategoria; public void setidcategoria(long idcategoria) { this.idcategoria = idcategoria;

public List<SelectItem> getcategorias() { return categorias; public void setcategorias(list<selectitem> categorias) { this.categorias = categorias; public List<Produto> getprodutos() { return produtos; public void setprodutos(list<produto> produtos) { this.produtos = produtos; Para finalizar temos nossa página produtos.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:head> <title>manutenção no cadastro de produtos</title> </h:head> <h:body> <h:form> <p:panel header="produto"> <h:panelgrid columns="2"> <h:outputlabel for="descricao" value="descrição:"/> <p:inputtext id="descricao" value="#{produto.produto.descricao"/> <h:outputlabel for="valor" value="valor:"/> <p:inputtext id="valor" value="#{produto.produto.preco"/> <h:outputlabel for="categoria" value="categoria:"/> <h:selectonemenu value="#{produto.idcategoria" id="categoria"> <f:selectitems value="#{produto.categorias"/>

</h:selectonemenu> <p:commandbutton action="#{produto.salvarproduto" update="messages,tabela" value="cadastrar"/> </h:panelgrid> <p:messages id="messages"/> <p:datatable id="tabela" value="#{produto.produtos" var="p"> <h:outputtext value="código" /> <h:outputtext value="#{p.id" /> <h:outputtext value="descrição" /> <h:outputtext value="#{p.descricao" /> <h:outputtext value="valor" /> <h:outputtext value="#{p.preco" /> <h:outputtext value="categoria" /> <h:outputtext value="#{p.categoria.descricao" /> <p:commandbutton ajax="false" value="excluir" update="messages" action="#{produto.excluirproduto"> <f:setpropertyactionlistener value="#{p" target="#{produto.produto" /> </p:commandbutton> </p:datatable> </p:panel>

</h:form> </h:body> </html>