Ajuda com cadastro no VRaptor

5 respostas
neguinho.etav

Olá galera,

Estou tentando criar 1 form de cadastro no VRaptor. Criei todos os campos como manda o guia( ex: funcionario.nome, funcionario.email), porém quando tento receber os dados no controller, eu não consigo, pois minhas classes fazem uso de outras classes (Ex: O funcionario possui um objeto Instituicao).

todas as vezes que tento utilizar o cadastro do funcionário, o sistema gera exceção de NullPointer.

Isso me deixou intrigado, então resolvi testar o seguinte:

Criei 1 construtor vazio e inicializei os meus objetos.

Quando fiz isso, o erro deixou de acontecer.

Porém, eu faço uso do Hibernate para persistencia. E este, caso exista 1 classe instanciada e com id igual a 0 (zero), persiste a informação (no processo de save).

Como devo proceder nesse caso: Por questões de integridade dos dados não posso instanciar as classes, porém o VRaptor necessita dessa instanciação para que possa realizar o injection…

Aguardo respostas… valeu galera…

5 Respostas

renanreismartins

provavelmente vc está tentando acessar a instituição do funcionario, por isso da ex. posta seu cod ai que te ajudo

abrasss

neguinho.etav
renanreismartins:
provavelmente vc está tentando acessar a instituição do funcionario, por isso da ex. posta seu cod ai que te ajudo

abrasss

Segue o código (as classes eu me ative apenas aos atributos de relacionamento, porém o arquivo em anexo é a tela completa para análise):

@Entity
public class Funcionario {

	private Instituicao instituicao;
...
@Embeddable
public class Instituicao {

	private Uf uf;
...
@Entity
public class Uf {

	private long codigo;
	private String sigla;
	private String nome;
...
@Resource
public class FuncionarioService {

	@Post("usuario/cadastrar")
	public void salvarFuncionario(Funcionario funcionario) {
Lucas_Cavalcanti

tem como postar a parte do js que faz a requisição? de preferencia em texto?

neguinho.etav
Lucas Cavalcanti:
tem como postar a parte do js que faz a requisição? de preferencia em texto?

Não sei se é isso que vc quer... mas lá vai:

text: 'Enviar',
            handler: function() {
                var form = this.up('form').getForm();
                if (!form.isValid()) {
                	Ext.Msg.alert('Atenção', 'Preencha corretamente os campos obrigatórios!');
                	return false;
                }
                
                this.el.mask('Cadastrando');
                
                form.submit({
            		url: 'usuario/cadastrar',
        			scope: this,
        			success: function() {
        				this.el.unmask();
        				return true;
        			}
     			});
            }
Lucas_Cavalcanti

e qual é o formulario em questão?

Criado 12 de fevereiro de 2012
Ultima resposta 15 de fev. de 2012
Respostas 5
Participantes 3