DWR + Struts + Hibernate

Alguém poderia me indicar um bom exemplo com o uso do DWR com Struts e Hibernate ?

Obrigado

Provavelmente um exemplo com os 3 juntos voce não ira encontrar.
Estude os 3 separadamente e depois integre-os com os conhecimentos obtidos.

Minha aplicação eu fiz com Struts e Hibernate, queria melhorar alguma coisa com ajax, optei pelo “DWR” pois vi nos forums que ele é muito bom.
Mas não estou conseguindo integrar o DWR na minha aplicação.

Cara, não usei com Struts, mas usae com JSF, e acho que pra você ver o que acontece de errado (que você não fala… :slight_smile: ), o DWR tem uma página de teste dos objetos publicados por ele.

No JSF eu criei um Managed Bean com métodos utilitários, e o registrei no DWR.

Ao fazê-lo, você o “batiza” no DWR neste ponto:


E no javascript você o referencia com o nome “Demo”.

O GRANDE pulo do gato é que no javascript vc terá defazer a função de callback, que vai tratr o retorno.

Você definiu isso? É nesse ponto que geralmente o pessoal que começa se perde…

HTH

é nessa parte mesmo q estou enrolado, montar as callback no javaScript

no meu dwr.xml eu tenho:

     <create javascript="FornecedotAct" creator="new">
        <param name="class" value="actions.Fornecedor.Act"/>
     </create>     

Minha Action esta assim:

*MyAction extend de ActionSupport

[code]public class FornecedorAct extends MyAction
{

private Fornecedor fornecedor;
private List<Fornecedor> fornecedores;
private String pesquisa;

public String input()throws Exception{
	setEstilo("fornecedorativo");
	setModo(GRAVAR);
	return INPUT;
}

public String pesquisa()throws Exception{
	setEstilo("fornecedorativo");
	
	if (getPesquisa() != null && Util.isNumeric(getPesquisa()) )
	   {
		   fornecedores = new ArrayList<Fornecedor>();
		   fornecedores.add(FacadeFornecedor.pesquisar( Integer.parseInt( getPesquisa() ) ));
		   setFornecedores(fornecedores);
	   }
	
	else if (getPesquisa() != null && !Util.isNumeric(getPesquisa()) )
	   {
		   setFornecedores(FacadeFornecedor.pesquisar(getPesquisa()));
	   }

	else
	   setFornecedores(FacadeFornecedor.pesquisar());
	
	return PESQUISA;
}

public String gravar()throws Exception{
     if (getModo().equals(GRAVAR))
         FacadeFornecedor.gravar(fornecedor);			
     else
	     FacadeFornecedor.alterar(fornecedor);
			
      setModo(GRAVAR);
      fornecedor = null;

	return GRAVAR;
}

public String editar()throws Exception{	
	setModo(EDITAR);
	fornecedor = FacadeFornecedor.pesquisar(fornecedor.getCodigo());					
	
	return EDITAR;
}

public String excluir()throws Exception{
	FacadeFornecedor.excluir(fornecedor);
	setFornecedores(FacadeFornecedor.pesquisar());
	return EXCLUIR;
}

public Fornecedor getFornecedor() {
	return fornecedor;
}

public void setFornecedor(Fornecedor fornecedor) {
	this.fornecedor = fornecedor;
}	

public List<Fornecedor> getFornecedores() {
	return fornecedores;
}

public void setFornecedores(List<Fornecedor> fornecedores) {
	this.fornecedores = fornecedores;
}

public String getPesquisa() {
	return pesquisa;
}

public void setPesquisa(String pesquisa) {
	this.pesquisa = pesquisa;
}

[/code]

aí como eu faço pra prosseguir agora?

Hmmm.
Sabia.
:smiley:

http://getahead.ltd.uk/dwr/browser/intro

Leia essa parte…

A sua função (por exemplo, FornecedotAct.getPesquisa()) num >javascript< tem de ter a função que vai tratar o retorno.

(você vai ter uma função callbackPesquisa(param), por exemplo,
que seria algo como um alert(param), e no javascriptprincipal, vc vai ter FornecedotAct.getPesquisa(callbackPesquisa))…

Aí entra a assincronicidade da parada, essa função será executada quando o dwr gerar o retorno, que é onde muita gente que está aprendendo se perde.

A ordem de execução dos scritps não é linear, você tem de pensar que a função de callback vai ser executada a qualquer momento.

dei uma olhada lá, mas ainda tah meio embaçado, teria como vc me dar uma força pra criar o javaScript dessa classe?

ia dar uma clareada legal…