Como pegar um objeto java no javascript?

14 respostas
A

Olá pessoas, pesquisei sobre isso mas achei somente soluções inviáveis…

preciso passar um array que foi feito no java, para o javascript… vi que pode ser feito com sessions, como eu faço isso? alguém tem um exemplo?

detalhe = esse array pode ser um bom extenso então não é muito bom criar campos hidden pra pegar com o javscript depois…

14 Respostas

N

http://directwebremoting.org/dwr/index.html

A

nossa só com DWR que consigo? nunca mexi com isso >.> sou iniciante ainda… :oops:

N

encoda tua array em json, e retorna o json numa chamada com jquery…

A

humm agora ficou mais interessante… gostei desse exemplo… vc teria um exemplo mais completo usando json e jquery?

J

Bom dia,

Do lado do cliente ou servidor ?

Ambos os lados do cliente e do servidor, existem maneiras de se conectar Java e JavaScript.

The Java-JavaScript functionality supported by the redesigned Java Runtime Environment is still called “LiveConnect”, despite the Open Java Interface-specific approach having been abandoned.

O JavaScript é executado do lado do cliente ??? Enquanto java está rodando no servidor(JSP/Servlets/JSF/Facelets…) ou no cliente(Applet…).

Do lado do servidor Java gera JavaScript, que será enviado no lado do cliente.

O que você quer fazer exatamente ?

A

Seguinte eu tenho um componente feito em javascript para gerar uma tabela. Este “componente” recebe como parametro um array multidimensional para formar a tabela. Este array é formado no java (no servidor) e eu preciso passar este array para passar como parametro pro meu componente feito em javascript. Entendeu? em minha aplicação web não há Applet, e sim somente JSP/Servlet. Este componente em javascript é executado no lado do cliente para a montagem da tabela no browser. Espero que fui claro, obrigado pela ajuda.

N

nem tenho ;{

mas é simples, crie uma servlet, e na servlet você imprime o json que criou com o JSONObject.

no javascript basta fazer uma requsicao, pode ser get

$.ajax({url: "url-da-servlet", type: "get", //tipo da requisicao, get ou post dataType:"json", //tipo de retorno, no nosso caso, json data: {}, // um objeto com valores para passar pra servlet, axo que vc nem vai usar success: function(data){} //funcao de callback que recebe o json e trata ele }) ;

tu processa o json retornado ali no success da chamada…

A

nathanpsouza:
nem tenho ;{

mas é simples, crie uma servlet, e na servlet você imprime o json que criou com o JSONObject.

no javascript basta fazer uma requsicao, pode ser get

$.ajax({url: "url-da-servlet", type: "get", //tipo da requisicao, get ou post dataType:"json", //tipo de retorno, no nosso caso, json data: {}, // um objeto com valores para passar pra servlet, axo que vc nem vai usar success: function(data){} //funcao de callback que recebe o json e trata ele }) ;

tu processa o json retornado ali no success da chamada…

Obrigado nathanpsouza, está clareando minhas idéias, irei tentar fazer isso amanhã qualquer coisa postarei aqui. Obrigado pela ajuda novamente.

A

Vc usa algum framework JavaScript tais como JQuery, EXT, YUI, DWR, script.aculo.us, Prototype etc? Cara
se sim recomendo JSON é o bicho! Tem lá uma curva de aprendizado pra quem é iniciante mas vale a pena estudar sobre…

André AS

A

andredecotia:
Vc usa algum framework JavaScript tais como JQuery, EXT, YUI, DWR, script.aculo.us, Prototype etc? Cara
se sim recomendo JSON é o bicho! Tem lá uma curva de aprendizado pra quem é iniciante mas vale a pena estudar sobre…

André AS

Hummm não uso, mas pelo que o nathanpsouza eu teria que usar o JQuery, correto?

alias o meu gerador de tabela que eu referi… eh o OAT framework

A

O Jquery é o mais usado. Estou usando o EXT e tou gostando muito das telinhas… D uma olhada:

http://dev.sencha.com/deploy/ext/examples/

A

Gostei do componente pivotgrid dele! vc sabe me dizer se ele suporta multiplas measures?

A

bom montei meu JSON em java… não tenho idéia de como passar esse JSON pro javascript e popular meu array do javascript… gostaria de fazer isso da manera mais facil…

eh possivel montar um codigo javascript no servlet?

out.println("<script et etc…

? e depois mandar isso pro meu jsp?

A

BOm estou tentando usar o jquery, mas estou com um problema está dando uma excessão meu codigo html eh:

<body>
<div id="query" align="justify">
	<form target="direita" name="myform" action="ControllerServlet">	
	<input type="hidden" name="cmd" value="queryBJI"/> <br>
	${error}
	<h3><b>Query:  <i>${nome}</i></b></h3>
		<textarea style="height: 83px; width: 394px; " name="query">${consulta}</textarea>		<br>
		<input type="submit" value="Submit Query"/>	
		<br><br>	
		
	<div id="result" align="center"> 
<script type="text/javascript">
$.ajax ( {
	url: "ControllerServlet",
	type : "get",
	dataType : "json",
	data: {},
	success: function(data) {
		alert("testando : " + data.venda[0]);
		
	}
})
</script>
</div>
	</form>
	
</div>
</body>

e a excessão eh:

SEVERE: Servlet.service() for servlet ControllerServlet threw exception
java.lang.NullPointerException
	at br.pbji.controller.ControllerServlet.processarRequisicao(ControllerServlet.java:46)
	at br.pbji.controller.ControllerServlet.doGet(ControllerServlet.java:32)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
	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:127)
	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:298)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
	at java.lang.Thread.run(Thread.java:636)

bom.. ele nao estah conseguindo pegar o parametro cmd da servlet e estanciar o objeto do valor do parametro... isso estah ocorrendo depois que eu coloquei a referencia do jquery e o codigo javascript que estah acima....

Criado 4 de novembro de 2010
Ultima resposta 6 de nov. de 2010
Respostas 14
Participantes 4