@Resource
public class XptoController{
public void index(){
....
}
public void index(String parametro){
....
}
}
E no jsp, ao utilizar o linkTo tentando acessar o metodo com parametro,
${linkTo[XptoController].index['parametro']}
Ocorreu um NullPointerException.
Dando uma olhada no codigo do VRaptor vi que o LinkToHandler encontrou o método “index” sem parametros, pois o codigo tenta encontrar o metodo no controller que tenha o mesmo nome do que foi informado no jsp. E no caso o primeiro retornado foi o que não tem o parametro. Depois ao tentar tratar os parametros passados pelo jsp ocorre o erro.
Pra resolver, eu alterei o controller dessa forma
@Resource
public class XptoController{
@Path({"/", "/{parametro}"})
public void index(String parametro){
....
}
}
Inclui um if pra validar se o parametro foi passado e o problema foi resolvido. De qualquer forma, isso é um bug no framework, ou a minha idéia de sobrecarregar o método que não tem nada a ver? :lol:
me pareceu que nao ia ser muito facil mesmo de resolver, o codigo encontra o metodo antes de saber quais são parametros…posso tentar fazer sim mas acho que nao vai ficar bonito nao :lol: . O que voce acha de armazenar apenas o nome do metodo, e adiar a busca pelo Method até o momento do toString do objeto Linker? Dessa forma já haveria um array de parametros pra ajudar a buscar o metodo correto…