VRaptor 3 + Spring + Hibernate

7 respostas
J

Bom Dia em questao ao VRaptor 2 vs VRaptor 3 e tambem uso mais as tecnologia Hibernate e Spring vem lhe pedir uma ajuda para comceçar a usar o VRaptor 3.

Meu sistema esta na seguinte a estrutura:

br.com.sistema.modelo => aqui fica todas as classe mapeadas de meu banco
br.com.sistema.logic => aqui esta todas as logicas de negocio
br.com.sistema.spring.bean => aqui esta meus bean

Exemplo:

public class BeanCadTabela {
   @Valid
   private CadTabela cadtabela;
     public BeanCadTabela() {
       // TODO Auto-generated constructor stub
       this.cadtabela = new CadTabela();
   }

   public CadTabela getCadtabela() {
       return cadtabela;
   }

   public void setCadtabela(CadTabela cadtabela) {
       this.cadtabela = cadtabela;
   }
}

br.com.sistema.logic => aqui fica as minhas logica de negocio

@Component("cadtabela")
public class CadTabelaLogic {
   @Valid
   @Parameter(create=true)
   @Out
   private BeanCadTabela beancadtabela = new BeanCadTabela();
   private DaoGenerico daoGenerico;
   @Out
   private List<CadTabela> lista;
   @Parameter(create=true)
   private List<ParametrosWeb> parametrosweb;
     public CadTabelaLogic(DaoGenerico daoGenerico) {
       // TODO Auto-generated constructor stub
       this.daoGenerico = daoGenerico;
     }
     @Validate(fields={"beancadtabela.cadtabela"})
     public void salvar() {
       // TODO Auto-generated method stub
       this.daoGenerico.getDao().salvar(this.beancadtabela.getCadtabela());
     } 
}

No meu projeto hoje esta assim(VRaptor 2), tem como vc me mostar como posso fazer no VRaptor 3 de uma forma mais elegante ouvi falar que nao precisa usar uma classe Bean para referenciar o seu objeto.
Tem como vc me passar um exemplo alterando este que te passei do meu caso.

Obrigado !!!
Joao Vitor

7 Respostas

Lucas_Cavalcanti

exemplo completo com o VRaptor 3:

@Component
public class DaoGenerico {...}

@Resource
public class CadTabelaController {
    private DaoGenerico generico;
    public CadTabelaController(DaoGenerico generico) {
         this.generico = generico;
    }

    public CadTabela salvar(CadTabela tabela) {
         generico.getDao().salvar(tabela);
         return tabela;
    }
}

isso é acessível pela url: /cadTabela/salvar

os parâmetros do formulario devem ser:
tabela.campo1
tabela.campo2

e a variável disponível para o jsp padrão em /WEB-INF/jsp/cadTabela/salvar.jsp vai se chamar ${cadTabela}

G

Esse link também pode te ajudar: http://vraptor.caelum.com.br/documentacao/migrando-do-vraptor2-para-o-vraptor3/

Abraços

J

garcia-jj:
Esse link também pode te ajudar: http://vraptor.caelum.com.br/documentacao/migrando-do-vraptor2-para-o-vraptor3/

Abraços

Estava dando uma olhada na pagina migrando vraptor 2 para vraptor 3

VRAPTOR 3

public class CadTabelaController {
    public CadTabela show () {
        CadTabela cadtabela = new CadTabela();
        return cadtabela;
    }
}

VRAPTOR 2

public class CadTabelaLogic {
    @Out
    private CadTabela cadtabela = new CadTabela();
}

So que achei ruin no meu caso meu html minha input teria que ficar assim em VRAPTOR 3

antes no vraptor 2 poderia fazer isso deixar como LOWERCASE

OBS: Porque isso nao sou eu quem faco o html e outra pessoa entao ela faz tudo em LOWERCASE fica mais facil para nao ter erros que como eu reverter isso no vraptor.

Obrigado !!!
Joao Vitor

Lucas_Cavalcanti

se vc quer que tudo fique em lowercase, crie essa classe:

@Component
@ApplicationScoped
public class LowercaseNameExtractor extends DefaultTypeNameExtractor {
    @Override
    public String nameFor(Type generic) {
         return super.nameFor(generic).toLowerCase();
    }
}

só que fazendo isso, TODAS as convenções de nome ficam para lowercase: URI, jsp, nomes de variáveis, etc…

e qdo for receber parâmetros:

public void salva(CadTabela cadtabela) {...}
J

Ok isto mesmo que quero lucas so uma duvida este tipo Type generic eu faço import de qual ?

lucascs:
se vc quer que tudo fique em lowercase, crie essa classe:

@Component
@ApplicationScoped
public class LowercaseNameExtractor extends DefaultTypeNameExtractor {
    @Override
    public String nameFor(Type generic) {
         return super.nameFor(generic).toLowerCase();
    }
}

só que fazendo isso, TODAS as convenções de nome ficam para lowercase: URI, jsp, nomes de variáveis, etc…

e qdo for receber parâmetros:

public void salva(CadTabela cadtabela) {...}

G

br.com.caelum.vraptor.interceptor.DefaultTypeNameExtractor

J

Ok valeu resolvido

Obrigado !!!

br.com.caelum.vraptor.interceptor.DefaultTypeNameExtractor

Criado 20 de novembro de 2009
Ultima resposta 26 de nov. de 2009
Respostas 7
Participantes 3