A pouco adicionei um método em um controller que recebe um Character, e esse parametro vem da URI. Porém sempre que tento acessar a página recebo um page-not-found. Quando altero o parametro como String a página é processada normalmente.
Fiz um debug e o converter de Character nunca é chamado.
estranho… já tentou com char ao invés de Character? é ruim usar String?
pra garantir que é uma letra só vc pode fazer:
@Path("/customer/{letter:[A-Z]}/page-{paging}/")
vc pode passar qqer regex depois dos ‘:’
de qqer forma, vou investigar pq não funciona
G
garcia-jj
Problema em usar String não é, mas como esse campo é um char quero já recebe-lo como char. Temporariamente estou recebendo via vraptor como String porém chamo um letter.charAt(0) antes de chamar o EJB, então tá tranquilo.
Lucas, vou fazer mais uns testes como você falou usando char e verifico se ele está registrando o converter. E te aviso.
Abraços
G
garcia-jj
Fiz uns testes aqui e mesmo trocando o ognl pelo iogi está dando erro. Por um instante achei ser o tradutor de parametros.
Porém notei que quando uso por exemplo /customer/5 funciona, porém /customer/x não funciona. Ele nem mesmo chama o converter, e o erro retornado é um http-404.
Se eu usar /customer/{letter:[A-Z]}/ ele entra no método porém com o letter = null.
Lucas_Cavalcanti
ele deve estar tratando char como número (afinal, ele é um número) por isso tá acontecendo esse tipo de coisa =(
G
garcia-jj
Pois foi o que eu notei. Porém se eu passar 5 como parametro ele me imprime 5 na tela. Se ele fosse trabalhar com char sendo int deveria imprimir um caractere “fora do espectro”. O mais estranho ainda é que ele não chama nenhum converter. Coloquei um breakpoint em todos os converters mas nenhum é chamado.
Outra coisa que eu notei é que com regex ele até acha o método, porém todo e qualquer parametro é passado como null mesmo que eu passe o parametro.
Lucas_Cavalcanti
bom, corrigi esse bug no código… (eu tava tratando char como número mesmo =/)