VRaptor dúvida

5 respostas
tati.mat.moreira

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
@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);
	}
	
}

Bjosss..

5 Respostas

von.juliano

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:

tati.mat.moreira

Oi querido, quanto tempo! :)

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

vraptor-formulario.jsp
<form action="pessoa.pesquisa.logic">
		Id:<input name="pessoa.id"><br/>
		
		<input type="submit" value="pesquisar">
   </form>
Outra coisa: como eu faço pra eu pegar os dados da pessoa no arquivo pesquisa.ok.jsp?

Bjos...

tati.mat.moreira

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

vraptor-formulario.jsp
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Formulário de Pesquisa</title>
</head>
<body>
	<form action="pessoa.pesquisa.logic">
		Id:<input name="id"><br/>
		
		<input type="submit" value="pesquisar">
   </form>
</body>
</html>
PessoaLogic.java
@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);
	}	
}
pesquisa.ok.jsp
@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);
	}	
}
Exception:
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)
von.juliano

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:

tati.mat.moreira

Aeeeee! Funcionou!

Tinha que ser você pra resolver!

Bjossssss :wink:

Criado 8 de dezembro de 2008
Ultima resposta 10 de dez. de 2008
Respostas 5
Participantes 2