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”.
existir até existe, mas vc precisa implementar essa lógica na mão… pq vc quer isso?
M
mveronez
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
mveronez
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
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)publicclassPrefixInterceptorimplementsInterceptor{publicPrefixInterceptor(MutableRequestrequest,ParameterNameProviderprovider){//guarda em fields }accepts=>trueouseométodotiverumparâmetrosóintercepts(method,chain){String[]names=provider.namesFor(method);Set<String>paramNames=request.getParameterMap().keys()for(Stringname:paramNames){request.setParameter(names[0]+"."+name,request.getParameter(name);}chain.doFilter(method...);}}
M
mveronez
Lucas, obrigado pela ajuda. Amanhã vou tentar implementar e posto o resultado aqui. Valeu!