VRaptor dúvida

Olá pessoal,

não estou conseguindo fazer o método pesquisa utilizando o vraptor. Quero entrar com um id no formulário e ao clicar é feita uma busca no banco e mostra na tela para o usuário em outra página.

PessoaLogic.java

[code]@Component(“pessoa”)
public class PessoaLogic {

@Read(create=true)
@Out
private Pessoa pessoa = new Pessoa(); 

public void adiciona()throws Exception{
	new PessoaDao().adiciona(pessoa);
}

public void atualiza() throws Exception{
	new PessoaDao().atualiza(pessoa);
}

}[/code]

Bjosss…

Oi Tati, o método fica assim:

public void pesquisa(Long id) { this.pessoa = new PessoaDao().pesquisa(id); }Aí é só criar a pessoa.ok.jsp, onde você pode usar os dados.

Blz? Flw! :mrgreen:

Oi querido, quanto tempo! :slight_smile:

Não entendi como fica o form, olha o jeito que estou fazendo:

vraptor-formulario.jsp

[code]
Id:

	<input type="submit" value="pesquisar">
[/code] Outra coisa: como eu faço pra eu pegar os dados da pessoa no arquivo [b]pesquisa.ok.jsp[/b]?

Bjos…

Ainda não consegui resolver a pesquisa, vou postar os códigos:

vraptor-formulario.jsp[code]

Formulário de Pesquisa Id:
	<input type="submit" value="pesquisar">
[/code]

PessoaLogic.java[code]@Component(“pessoa”)
public class PessoaLogic {

@Read(create=true)
@Out
private Pessoa pessoa = new Pessoa(); 

public void adiciona()throws Exception{
	new PessoaDao().adiciona(pessoa);
}

public void atualiza() throws Exception{
	new PessoaDao().atualiza(pessoa);
}

public void pesquisa(Long id) {
	this.pessoa = new PessoaDao().pesquisa(id);
}	

}[/code]

pesquisa.ok.jsp[code]@Component(“pessoa”)
public class PessoaLogic {

@Read(create=true)
@Out
private Pessoa pessoa = new Pessoa(); 

public void adiciona()throws Exception{
	new PessoaDao().adiciona(pessoa);
}

public void atualiza() throws Exception{
	new PessoaDao().atualiza(pessoa);
}

public void pesquisa(Long id) {
	this.pessoa = new PessoaDao().pesquisa(id);
}	

}[/code]
Exception: [quote]
java.lang.IllegalArgumentException: id to load is required for loading
at org.hibernate.event.LoadEvent.(LoadEvent.java:74)
at org.hibernate.event.LoadEvent.(LoadEvent.java:56)
at org.hibernate.impl.SessionImpl.load(SessionImpl.java:819)
at org.hibernate.impl.SessionImpl.load(SessionImpl.java:815)
at com.web.dao.PessoaDao.pesquisa(PessoaDao.java:35)
at com.web.vraptor.PessoaLogic.pesquisa(PessoaLogic.java:26)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.vraptor.component.DefaultLogicMethod.execute(DefaultLogicMethod.java:61)
at org.vraptor.interceptor.ExecuteLogicInterceptor.intercept(ExecuteLogicInterceptor.java:32)
at org.vraptor.core.InterceptorsLogicFlow.execute(InterceptorsLogicFlow.java:72)
at org.vraptor.interceptor.SettingAndValidationInterceptor.intercept(SettingAndValidationInterceptor.java:131)
at org.vraptor.core.InterceptorsLogicFlow.execute(InterceptorsLogicFlow.java:72)
at org.vraptor.interceptor.InjectionInterceptor.intercept(InjectionInterceptor.java:41)
at org.vraptor.core.InterceptorsLogicFlow.execute(InterceptorsLogicFlow.java:72)
at org.vraptor.interceptor.ComponentLookupInterceptor.intercept(ComponentLookupInterceptor.java:58)
at org.vraptor.core.InterceptorsLogicFlow.execute(InterceptorsLogicFlow.java:72)
at org.vraptor.interceptor.FlashScopeInterceptor.intercept(FlashScopeInterceptor.java:22)
at org.vraptor.core.InterceptorsLogicFlow.execute(InterceptorsLogicFlow.java:72)
at org.vraptor.interceptor.RegisterAttributesInteceptor.intercept(RegisterAttributesInteceptor.java:38)
at org.vraptor.core.InterceptorsLogicFlow.execute(InterceptorsLogicFlow.java:72)
at org.vraptor.core.VRaptorExecution.execute(VRaptorExecution.java:98)
at org.vraptor.core.DefaultController.execute(DefaultController.java:46)
at org.vraptor.VRaptorServlet.service(VRaptorServlet.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Unknown Source)[/quote]

Faz mesmo… Vê se responde o email né! :mrgreen:

No seu formulário, mude a linha do id:

Id:<input type="text" name="pessoa.id"><br/>E mude a pesquisa:

public void pesquisa(Pessoa p) { this.pessoa = new PessoaDao().pesquisa(p.getId()); }Tenta assim e vê se funciona.
Depois, na outra jsp, você pode pegar os dados normalmente, com ${pessoa.nome} por exemplo.

Blz? Flw! :mrgreen:

Aeeeee! Funcionou!

Tinha que ser você pra resolver!

Bjossssss :wink: