@Resource
public class Controller
@Path({"/", "{algo}")
public void metodo(String algo){
}
}
eu invoco esse método no jsp via linkTo sem problemas, sem passar parametros
${linkTo[Controller].metodo}
Bom atualizei pra versão mais recente do VRaptor (3.5.0) e nao está funcionando na invocacao sem parametros, não tenho a exception agora mas o erro diz respeito ao numero de argumentos do metodo (a exception avisa que está faltando argumentos)
Quando comecei a usar isso, minha ideia a principio era sobrecarregar o metodo, discuti isso aqui com o lucas uns meses atras e vimos que o linkTo não se comportava bem se o controller tivesse mais de um metodo de mesmo nome, então fiz essa gambiarrazinha ai na anotação @Path pra atender as duas urls, e como o linkTo conseguia gerar o link mesmo sem os parametros do metodo mantive assim.
Alias pra funcionar agora tive que fazer isso…
${linkTo[Controller].metodo['']}
Argh! :lol:
Alguma alteração na nova versão quebrou esse comportamento (encontrar o metodo mesmo sem os argumentos)? Agora só vai funcionar com os dois metodos no controller?
O linkTo foi alterado pra tentar fazer o match dos parâmetros, se tiver mais de um método com o mesmo nome… mas deveria funcionar normal se só tem um método com esse nome:
vc consegue debuggar e ver se ele tá caindo nesse condicional?
Ainda nao debuguei mas olhando o codigo do linkTo…se eu usar assim no jsp:
${linkTo[MeuController].metodo}
o método que alimenta a coleçao de argumentos (método get) não vai ser invocado né, entao a lista de args vai ficar vazia mesmo…tá errado.
Compare como o código estava antes, o objeto Linker recebia um Method como argumento no construtor e os args eram criados a partir desse method, então sempre batia com os argumentos necessários pro método. Agora está dependente do que foi passado no JSP…
Vou debugar pra confirmar minha “teoria” e reporto aqui, valeu!