Qual a melhor forma de criar as lógicas dos componentes no vRaptor

8 respostas
Andre_Fonseca

Oi,

A minha dúvida é a seguinte:

suponha que eu esteja fazendo o cadastro de um Usuário, o que seria melhor fazer

@Component
class UsuarioComponent {

   // apenas chama o form de cadastro
   public void cadastra() {}

   // realiza o cadastro do usuario na BD
   public void confirmaCadastra() {
   
   }
}

ou

@Component 
class UsuarioComponent {

  // chama o formulario de cadastro,
  // o action do formulario volta para esta logica
  public void cadastra(Usuario usuario) {
    // significa que preenchi o campo nome 
    // e estou cadastrando um usuario
    if (usuario.getNome()!=null) {
      // cadastra um usuario no banco
    }
  }
}

quem usa o vRaptor como costuma fazer??

Obrigado

8 Respostas

S

Fala ai blz?
Cara aqui no trampo nós fazemos assim:

cria o metodo que chama o o formulario.
e depois o metodo que vai cadastrar o usuario

public void formulario(){
}

public void adiciona(Usuario usuario) {
}

para validar os campo o HIbernate validator

Andre_Fonseca

oi

legal, mas e se no caso você tiver tipo uma consulta e um cadastro de usuário?? você cria um componente para consulta e outro para cadastro??

@Component
class UsuarioConsultaComponent {
  public void formulario() {}

  public void consulta() {}
}

@Component
class UsuarioCadastraComponent {
  public void formulario() {}

  public void cadastra() {}
}

ou então

@Component
class UsuarioComponent {

   public void formularioConsulta() {}

   public void formularioCadastro() {}

   public void consulta() {}
  
   public void cadastra() {}
}

Obrigado pela resposta

S

voce quer fazer uma consulta para cadastrar o usuario? ou para ver se ele está no banco?
dentro do metodo adiciona voce chama um usuarioDao por exemplo que nele já tem a implementação em HQL…
Usuario usuario = usuario.getAlgumaCoisa(usuario.getNome(), usuario.getEmail());

Andre_Fonseca

Opa

na verdade seria algo assim: eu tenho um menu usuario com duas opções, cadastra e consulta, o consulta me lista uma pagina de usuarios com um botao editar e outro excluir, o cadastra cria um novo usuario e volta para a lista

@Component
class UsuarioConsultaComponent {

   // exibe formulario de consulta
   public void formulario() {}

   // consulta usuarios na base e mostra uma lista
   // com botoes editar e excluir
   public void lista() { }

}

@Component
class UsuarioCadastraComponent {
  
   // exibe formulario de cadastro
   public void formulario() {}

   public void adiciona(Usuario usuario) {}

  public void exclui(Usuario usuario) {}

  public void edita(Usuario usuario) {}
}

ai eu teria que fazer algo assim no meu views.properties

usuariocadastra.adiciona.ok = /jsp/usuarioconsulta/lista.ok.jsp usuariocadastra.exlui.ok = /jsp/usuarioconsulta/lista.ok.jsp usuairocadastra.edita.ok = /jsp/usuarioconsulta/lista.ok.jsp

O que acha? Confuso?

S

Olha só a melhor coisa nesse caso é fazer na mesma logica.
voce tem uma classe de modelo Usuario certo:
ai voce vai ter a sua classe de logica UsuarioLogic.
ai dentro da sua logica voce coloca os metodos de negocio.
exemplos: listaUsuario(). cadastra(Usuario usuario) , remove(Usuario usuario)…
no seu meno coloca um link para cada logic…

Andre_Fonseca

Oi

então, segui o seu exemplo, agora surgiu uma outra dúvida

quando eu adiciono o usuário no caso de sucesso eu quero redirecionar para a lista

colocando assim no meu views.properties

mas

HTTP ERROR: 404

NOT_FOUND

RequestURI=/myapp/usuario.list.logic

se eu colocar

funciona, mas neste caso eu perco a REQUEST, eu eu preciso dela para buscar novamente a lista, no caso a lista de apenas um usuário, a que eu acabei de criar

a pergunta é, como redirecionar o resultado de uma lógica para outra lógica? vi nos exemplos que bastava fazer como acima sem o redirect, mas não sei porque não funcionou, estou usando o NiceURL, será que é isso??

Valeu

Andre_Fonseca

bom, achei qual era o problema, essa lógica de redirecionamento logica => logica nao funciona se eu estiver usando o NiceURL, pelo menos eu não consegui fazer funcionar… quem sabe quando eu aprender a fazer direito :smiley:

S

bom eu nunca usei niceUrl ainda, no trabalho eu sempre uso assim:
usuario.adiciona.ok = usuario.lista.logic
sempre funcionou… no começo fazer o simples é melhor para nós não é? bom até mais…

Criado 16 de abril de 2009
Ultima resposta 16 de abr. de 2009
Respostas 8
Participantes 2