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…
provavelmente vc está tentando acessar a instituição do funcionario, por isso da ex. posta seu cod ai que te ajudo
abrasss
[quote=renanreismartins]provavelmente vc está tentando acessar a instituição do funcionario, por isso da ex. posta seu cod ai que te ajudo
abrasss[/quote]
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):
[code]@Entity
public class Funcionario {
private Instituicao instituicao;
…
[/code]
[code]@Embeddable
public class Instituicao {
private Uf uf;
…
[/code]
[code]@Entity
public class Uf {
private long codigo;
private String sigla;
private String nome;
…
[/code]
[code]@Resource
public class FuncionarioService {
@Post("usuario/cadastrar")
public void salvarFuncionario(Funcionario funcionario) {
[/code]
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:
[code] 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;
}
});
}[/code]
e qual é o formulario em questão?