Como setar um vetor de string do java para um vetor em javascript?

Boa noite pessoal,

estou tentando setar o vetor em javascript com um vetor feito em java, mas quando eu tento isso ele nao aceita. Estou usando struts e fazendo da seguinte maneira:

JAVA
request.setAttribute(“vetor”, vetor);

JSP
var vetor = <bean:write name=“vetor” />;

vi que quando o valor é String, o vetor nao passa as aspas, entao coloquei as aspas no meu vetor do java, so que quando eu seto o vetor no javascript ele substitui as aspas pelas macros.

queria saber se tem outra forma de passar e recuperar esse vetor, ou se tem como o javascript nao substituir as aspas pelas macros.

obrigado

Da para fazer com DWR , de uma pesquisada .

Qualquer coisa estamos ai !

Boa tarde Bravox,

obrigado pela dica, mas ainda to com problema…

consigo retornar o vetor, mas nao consigo setar os valores em outro vetor em javascript para fazer a manipulação desses dados…

tentei usar o DWRUtil.setValue(“nome_do_vetor”, vetor).

vc tem outra dica???

Então, apartir do momento que o DWR enviou o array , esse array já é em javascript , basta vc manipular ele.

Vc deu uma olhada nas funções de callback do DWR ?

Aqui vai um exemplo:


// função do jquery , não importando para o momento
$(document).ready(
 
        function(){     
                
               // aqui é a função de callback que recebe uma lista ( array )
                function callBackGetTitlesOfBooks(titles){
                       

                         // outras funções do jquery, essa por exemplo completa um combobox com o array 
                         $("#titulo").autocomplete(titles);
                         
                         $("#cadastrar").blur();
                }
                 
                // aqui está a sacada do dwr, ele obtém a lista do servidor , invocando 
                // um método java, e depois passa a lista (que na verdade se tornou um array em javascritp)
               // para a função de callback, e depois e só trabalhar com o array da forma que vc quiser 
                FacadeDwrForPageLivro.getTitlesOfBooks(callBackGetTitlesOfBooks);                       
        }
);

A classe java:


@RemoteProxy(name="FacadeDwrForPageLivro")
public class FacadeDwrForPageLivro extends FacadeDWR {

      
        @RemoteMethod
        public List<String> getTitlesOfBooks() throws Exception{
               
          // logica para retorna a lista que na verdade vai virar um array em javascript

        }                     
}

Repare nas anotações :

[code]

@RemoteProxy(name=“FacadeDwrForPageLivro”) e @RemoteMethod [/code]

e nessa linha do código javascript

[code]

FacadeDwrForPageLivro.getTitlesOfBooks(callBackGetTitlesOfBooks);[/code]

Perceba que a classe e o método ficou disponível e se vc analisar bem , o método na classe java não recebe nenhum parâmetro, a linha
acima recebe! isso acontece porque o método em java retorna uma lista que vai ser passado para o método callback em forma de array.

Para isso funcionar vc tem que add no seu web.xml a seguinte linha:


   <servlet>
                <servlet-name>dwr-invoker</servlet-name>
                <servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>
                <init-param>
                        <param-name>classes</param-name>
                        <param-value>
                                br.com.agenda.ajax.action.FacadeDwrForPageLivro                        
                        </param-value>
                </init-param>
                <init-param>
                        <param-name>debug</param-name>
                        <param-value>true</param-value>
                </init-param>
        </servlet>

        <servlet-mapping>
                <servlet-name>dwr-invoker</servlet-name>
                <url-pattern>/dwr/*</url-pattern>
        </servlet-mapping>