dúvida na alteração de dados na loja virtual Caelum

6 respostas
R

Caros, bom dia.
Gostaria de perguntar se ao clicar em editar na lista de músicas, os campos (título, autor, etc) devem vir preenchidos para efetuarmos as alterações. Ou se é somente enviado para formulario.ok.jsp o id de música ?
muito obrigado :smiley:

6 Respostas

R

roger2007:
Caros, bom dia.
Gostaria de perguntar se ao clicar em editar na lista de músicas, os campos (título, autor, etc) devem vir preenchidos para efetuarmos as alterações. Ou se é somente enviado para formulario.ok.jsp o id de música ?
muito obrigado :D

Sei que vcs vão pedir segue os arquivos envolvidos :

package br.com.teste.modelo;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
@Entity
public class Cargo {
	@Id
	@GeneratedValue(strategy = GenerationType.SEQUENCE)
		private Long id;
	    private String codigo;
		private String descricao;
		private Double vrmaodeobra;
package br.com.teste.logic;

import java.util.List;

import org.vraptor.annotations.Component;
import org.vraptor.annotations.InterceptedBy;
import org.vraptor.plugin.hibernate.Validate;
import br.com.teste.dao.DaoFactory;
import br.com.teste.modelo.Cargo;

@Component("cargo")
@InterceptedBy({AutorizadorInterceptor.class,DaoInterceptor.class})
public class CargoLogic {
	private final DaoFactory daoFactory;
	private List<Cargo> cargos;
	private Cargo cargo;
	
	public CargoLogic(DaoFactory daoFactory) {
		this.daoFactory = daoFactory;
	}
	public void formulario(){
		
	}
	// formulario para edicao
	public void editar(Cargo cargo) {
	// carrega os dados no banco para edicao
	this.cargo = this.daoFactory.getCargoDao().procura(cargo.getId());
	}
	// Adiciona um cargo novo ou atualiza se for edicao
	public void armazena (Cargo cargo) {
	this.daoFactory.beginTransaction();
	this.daoFactory.getCargoDao().atualiza(cargo);
	this.daoFactory.commit();
	}
	
	public void remove (Cargo cargo) {
		this.daoFactory.beginTransaction();
		this.daoFactory.getCargoDao().remove(cargo);
		this.daoFactory.commit();
		}
	//lista todos os cargos
	public void lista () {
		cargos = this.daoFactory.getCargoDao().listaTudo();
	}
	//getter pra cargo
	public Cargo getCargo(){
		return cargo;
	}
	//getter pra lista de cargos
	public List<Cargo> getCargos() {
	return this.daoFactory.getCargoDao().listaTudo();

	}
	

}
package br.com.teste.logic; 

import org.vraptor.Interceptor;
import org.vraptor.LogicException;
import org.vraptor.LogicFlow;
import org.vraptor.annotations.Out;
import org.vraptor.view.ViewException;
import br.com.teste.dao.DaoFactory;

public class DaoInterceptor implements Interceptor { 

private final DaoFactory factory = new DaoFactory(); 
@Out(key="br.com.teste.dao.DaoFactory")
public DaoFactory getFactory() {
return factory; 
} 
public void intercept(LogicFlow flow) throws LogicException, ViewException { 
flow.execute(); 
   if (factory.hasTransaction()) {
      factory.rollback(); 
     }
      factory.close(); 
     } 
}
package br.com.teste.dao;

import org.hibernate.Session;
import org.hibernate.Transaction;

import br.com.teste.modelo.Cargo;
import br.com.teste.modelo.Classificacao;
import br.com.teste.modelo.Cliente;
import br.com.teste.modelo.Funcionario;
import br.com.teste.modelo.Produto;
import br.com.teste.util.HibernateUtil;

public class DaoFactory {
  private final Session session;
  private Transaction transaction;
  
  public DaoFactory(){
	  session =HibernateUtil.getSession();
  }
  public void beginTransaction() {
	  this.transaction = this.session.beginTransaction();
	  }
	  public void commit() {
	  this.transaction.commit();
	  this.transaction = null;
	  }
	  public boolean hasTransaction() { 
	  return this.transaction != null;
	  }
	  public void rollback() {
	  this.transaction.rollback();
	  this.transaction = null;
	  }
	  public void close() {
	  this.session.close();
	  }
	  public Dao<Funcionario> getFuncionarioDao() {
	  return new Dao<Funcionario>(this.session, Funcionario.class);
	  }
	  //alteração para funcionar usuario
	  public FuncionarioDao getFuncionarioDaos() {
		 return new FuncionarioDao(this.session);
		  }
	  
	  public Dao<Cargo> getCargoDao() {
      return new Dao<Cargo>(this.session, Cargo.class);
	  }
	  
	  
	  public Dao<Cliente> getClienteDao() {
	      return new Dao<Cliente>(this.session, Cliente.class);
		  }
	  public Dao<Produto> getProdutoDao() {
	      return new Dao<Produto>(this.session, Produto.class);
		  }
	  public Dao<Classificacao> getClassificacaoDao() {
	      return new Dao<Classificacao>(this.session, Classificacao.class);
		  }

}
package br.com.teste.dao; 

import java.util.List;
import org.hibernate.Session;



public class Dao<T> { 
private final Session session; 
private final Class type; 

public Dao(Session session, Class type) { 
this.session = session; 
this.type = type; 
} 

protected Session getSession() { 
return session; 
} 

public void adiciona(T funcionario) { 
this.session.save(funcionario); 
} 

public void atualiza(T funcionario) { 
this.session.merge(funcionario); 
} 

public void remove(T funcionario) { 
this.session.delete(funcionario); 
} 

public List<T> listaTudo(){ 
return this.session.createCriteria(this.type).list(); 
} 

public T procura(Long id) {
return (T) session.load(this.type,id);
}

}
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>   
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Cadastro de cargos</title>
<link rel="stylesheet" type="text/css" href="css/style.css"/>
</head>
<body>
<%@ include file="../menu.jsp" %>
<h1>Cadastro de cargos</h1>
<form action="cargo.armazena.logic" method="post">
<input type="hidden" name="cargo.id" value="${cargo.id}"/><br/>
<input type="text" name="cargo.id" value="${cargo.id}"/><br/>
Código:
<input type="text" name="cargo.codigo" value="${cargo.codigo}"/>
Descrição: 
<input type="text" name="cargo.descricao" value="${cargo.descricao}"/><br/>
Mão-de-obra: 
<input type="text" name="cargo.vrmaodeobra" value="${cargo.vrmaodeobra}"/><br/>
<input type="submit" />
</form>
</body>
</html>

Caros, boa noite.
Relembrando, consigo adicionar, ver listas e remover, mas na hora de alterar o JSP vem em branco, como coloquei um campo text para id, eu consigo ver esse valor , mas o restante dos campos vem em branco.
Conto com a ajuda de vcs. Muito obrigado e parabéns pela apostila da loja virtual.
abraços, Roger :smiley:

R

Realmente preciso de ajuda para resolver esse problema. Aguardo notícias.
Muito obrigado e boa noite a todos

R

roger2007:
Realmente preciso de ajuda para resolver esse problema. Aguardo notícias.
Muito obrigado e boa noite a todos

Caros, não sei se essa dúvida é simples demais para voces, mas gostaria de utilizar a tecnologia empregada na apostila Caelum, mas o problema citado me impede de continuar. Gostaria de um retorno de vcs.
Muito obrigado :slight_smile:

R

peço ajuda novamente, por favor verifiquem se existe erro!!!

R

:frowning: gostaria de saber se há interesse em responder essa dúvida ?
pois até agora ninguém se prontificou a colaborar.
:frowning:

R

Consegui resolver o problema .
Relembrando : consigo adicionar, excluir e listar, mas não consigo visualizar os atributos no momento de editar, dessa forma somente via o id da tabela. Depois de muito quebrar a cabeça e sem nenhuma ajuda, recomecei o projeto e verifiquei que ao criar os getters e setters estava marcado “final” (nas classes modelo), refiz todos getters e setters e projeto está funcionando muito bem.
Muito obrigado :smiley:

Criado 11 de fevereiro de 2008
Ultima resposta 17 de fev. de 2008
Respostas 6
Participantes 1