Duvida sobre VRaptor

6 respostas
M

Olá.
Gostaria de saber se existe uma forma do VRaptor receber parâmetros sem o prefixo do modelo, e conseguir popular o parâmetro. P. ex, em um método “adiciona”, gostaria de passar somente um array de atributos, e não o “cliente.id, cliente.nome”.

Obrigado :slight_smile:

6 Respostas

Lucas_Cavalcanti

existir até existe, mas vc precisa implementar essa lógica na mão… pq vc quer isso?

M

Opa, blz, Lucas?
Então, é que estou trabalhando em um projeto com Ext, e surgiu essa necessidade, pois fica mais fácil de trabalhar com o Ext se não precisar escrever o nome da classe como prefixo dos atributos… Percebi que no Spring funciona assim, daí fiquei pensando se seria possível obter o mesmo resultado no VRaptor.

Lucas_Cavalcanti

bom… vc pode fazer alguma funçãozinha javascript que coloca algum prefixo no nome de todos os atributos ou um interceptor do vraptor que coloca um prefixo em todos os parametros do request. O que vc prefere?

M

Então, passei a tarde tentando sobrescrever um método do Ext, mas ainda não consegui… se tiver um jeito pelo VRaptor, acho q fica bacana :slight_smile:

Lucas_Cavalcanti

vc não tem que passar um array com os parâmetros? não é só mudar esse array?

no vraptor seria algo do tipo:

@Intercepts(before=ParametersInstantiatorInterceptor.class)
public class PrefixInterceptor implements Interceptor {
    
     public PrefixInterceptor(MutableRequest request, ParameterNameProvider provider) { //guarda em fields }

     accepts => true ou se o método tiver um parâmetro 

    intercepts(method, chain) {
        String[] names = provider.namesFor(method);

        Set<String> paramNames = request.getParameterMap().keys()
       for(String name : paramNames) {
          request.setParameter(names[0] + "." + name, request.getParameter(name);
       }

      chain.doFilter(method...);
    }
}
M

Lucas, obrigado pela ajuda. Amanhã vou tentar implementar e posto o resultado aqui. Valeu!

Criado 27 de março de 2012
Ultima resposta 27 de mar. de 2012
Respostas 6
Participantes 2