Lucas_Cavalcanti
se o parâmetro do método se chamar id (e não Id como tá) é exatamente isso que vc deve fazer…
e na jsp de resultado o produto retornado vai estar disponivel via ${produto}
GabrielCardelli
Opa , valeu Lucas muito obrigado.
GabrielCardelli
Ae consegui fazer. O problema é na primeira chamada onde ainda não foi passado nenhum valor pra id, ele gera um IllegalArgumentException
br.com.caelum.vraptor.InterceptionException: java.lang.IllegalArgumentException: id to load is required for loading
br.com.caelum.vraptor.interceptor.ExecuteMethodInterceptor.intercept(ExecuteMethodInterceptor.java:77)
br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:46)
br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:59)
br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:48)
br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:59)
br.com.caelum.vraptor.interceptor.ParametersInstantiatorInterceptor.intercept(ParametersInstantiatorInterceptor.java:77)
br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:46)
br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:59)
br.com.caelum.vraptor.interceptor.InstantiateInterceptor.intercept(InstantiateInterceptor.java:42)
br.com.caelum.vraptor.core.InstantiatedInterceptorHandler.execute(InstantiatedInterceptorHandler.java:41)
br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:59)
br.com.caelum.vraptor.interceptor.InterceptorListPriorToExecutionExtractor.intercept(InterceptorListPriorToExecutionExtractor.java:46)
br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:46)
br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:59)
br.com.caelum.vraptor.interceptor.FlashInterceptor.intercept(FlashInterceptor.java:80)
br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:46)
br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:59)
br.com.caelum.vraptor.interceptor.ResourceLookupInterceptor.intercept(ResourceLookupInterceptor.java:67)
br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:46)
br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:59)
br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:48)
br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:59)
br.com.caelum.vraptor.core.DefaultRequestExecution.execute(DefaultRequestExecution.java:62)
br.com.caelum.vraptor.VRaptor$1.insideRequest(VRaptor.java:91)
br.com.caelum.vraptor.ioc.spring.SpringProvider.provideForRequest(SpringProvider.java:55)
br.com.caelum.vraptor.VRaptor.doFilter(VRaptor.java:88)
Tentei sobrecarregar o método mais não tive sucesso.
Alguem pode ajudar?
O problema é quando não há parâmetro 1° vez que executa.
sobreira
Na verdade é IllegalArgumentException.
Você está chamando o método sem passar o argumento id.
GabrielCardelli
Sim está no console.
troquei as bolas^^
Lucas_Cavalcanti
primeiro vc tem que se perguntar se faz sentido vc chamar o buscaProduto sem passar o id…
o que vc pode fazer tb, eh fazer um if que manda pra outro lugar se não tiver id (ele vai vir null se vc não passar na requisição)
e vc disse que não consegue acessar ${produto} na jsp?
vc tah retornando um produto preenchido no método?
GabrielCardelli
Lucas, consegui resolver eu tinha tirado o retorno do método e não tinha colocado novamente agora sim ta funcionando.
Sobre o id = null eu fiz o if mais erradamente ao invez de testar o id testei o produto por isso não estava funcionando.
agora está!!!
Obrigado pela ajuda, agora já posso continuar a apostila.
Abraço