Avatar billede backupmand Nybegynder
02. oktober 2002 - 13:55 Der er 5 kommentarer og
1 løsning

overføre et java array til et javascript array

Goddag

Efter at have inkluderet en bean på en jsp-side, vil
jeg gerne have alle elementer fra et String array, der
er erklæret nede i beanen og over i et array i javascrtipt.

Flg lader ikke til at fungere:
(begge arrays har samme størrelse, selvfølgelig)

<jsp:useBean id="minbean" class="MinBean" scope="request"/>

var javascriptarray=new Array(10);

javascriptarray="<%minbean.mitArray()%>";

Metoden i beanen er således:

public String[] mitArray()
    {
    return indholdet;
    }

i toppen af bean findes erklæringen
String indholdet[];

arrayet fyldes ud i en servlet, hvor også
størrelsen bliver sat....
Avatar billede disky Nybegynder
02. oktober 2002 - 14:14 #1
Du gemmer dem i en form som hidden felter, som dit javascript så tager dem fra.

problemmet er at servletten er server side, hvorimod dit javascript er clientside.

Du kan også gøre det hvis du ændre din mitArray() til at returnere dit array i en form som svarer til du skriver noget i retningen af:javascriptarray="pkt1","pkt2",.. (eller hvordan man nu initialiserer et javascript array.
Avatar billede backupmand Nybegynder
02. oktober 2002 - 16:53 #2
det skal jeg lige afprøve  - det med formen. Det havde jeg ikke tænkt på,
jeg vender derefter tilbage.
Avatar billede backupmand Nybegynder
02. oktober 2002 - 17:41 #3
Har løst problemet uden formen på flg måde:
-jsp inkluderer den bean der skal benyttes til at have array data fra.
inkluderes i toppen af jsp-dokumentet.
-En vector overføres med bean objekt i sig som attribut fra servlet..
-Vector traverseres via Iterator og indhold af array i bean overføres til midlertidigt array erklæret på jsp-siden.

Derefter:

var langstreng;
<% 
for (int i=0;i<laengde;i++)
    {
    if (jsparray[i]!=null)
        langstreng+=jsparray[i]+",";   
} %>

var nylang="<%=langstreng%>"; 
if (nylang!=null)
tmparray=nylang.split(",");   

Jeg lægger hele arrayet over i en lang streng med et "," som delimiter.
Derefter bruger jeg javascript tokenizer version (der hedder split),
der returnerer et array og lægger dette over i det nye javascript array.
Et element på hver sin position.

Så hvem skal have point ?
Avatar billede disky Nybegynder
02. oktober 2002 - 17:50 #4
Det er helt op til dig selv, mit andet forslag var noget i den retning du selv fandt ud af, men om du synes det er noget værd.
Er ene og alene din beslutning :)

p.s. Brug ArrayList istedet for Vector, den er hurtigere :)
Avatar billede backupmand Nybegynder
02. oktober 2002 - 18:39 #5
alle gode forslag er noget værd.
Avatar billede disky Nybegynder
02. oktober 2002 - 18:48 #6
jamen mange tak :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester