Avatar billede grave Nybegynder
12. oktober 2001 - 13:24 Der er 29 kommentarer og
3 løsninger

JavaBean bliver ikke opdateret !!!!

Jeg har en servlet der laver en helt masse set\'terre
så har jeg en jsp side der bliver åbnet samtidigt med at denne servlet bliver kaldt.
problemet er at de set\'er jeg laver i servletten ikke er opdateret når jeg på jsp siden laver en get. og jeg ved at de er sat !!!
Avatar billede disky Nybegynder
12. oktober 2001 - 13:27 #1
drop servlet og flyt funktionaliteten over i en Bean.

Så virker det.
Avatar billede grave Nybegynder
12. oktober 2001 - 13:29 #2
ja... men det har jeg ikke lyst til !!

spørgsmålet er. hvordan jeg fra min jsp kan få fat i den opdaterede bean
Avatar billede disky Nybegynder
12. oktober 2001 - 13:33 #3
nu må du lige bestemme dig. :-)

Snakker vi om beans eller servlets, du skrive begge dele !
Avatar billede grave Nybegynder
12. oktober 2001 - 13:43 #4
jeg har ern servlet en bean og en jsp side !
servletten skriver til beanen og jsp siden henter fra den !!
det der bliver hentet fra jsp\'en er ikke det servletten har opdateret beanen med !
Avatar billede grave Nybegynder
12. oktober 2001 - 13:45 #5
sorry jeg henter ikke fra jsp\'en jeg henter i jsp\'en  fra beanen !¤
Avatar billede disky Nybegynder
12. oktober 2001 - 13:52 #6
Hvis du starter jsp og servlet samtidig, hvordan kan du være sikker på servletten er færdig med at updatere når jsp\'en vil have data ?

Må man spørge hvorfor du gør det på den lidt kringlede måde ?
Avatar billede grave Nybegynder
12. oktober 2001 - 13:53 #7
fordi der er en knap på jsp\'en ! så jeg kan selv vælge hvornår jeg vil have denne værdi !
Avatar billede grave Nybegynder
12. oktober 2001 - 13:55 #8
jeg har set et eller andet med noget Serializable
kan det være den der mangler ?
jeg har prøvet at \"implemets Serializable\" i min bean
Avatar billede disky Nybegynder
12. oktober 2001 - 13:56 #9
jeg tænke mere på at sende data til en servlet som smider den videre til en bean osv.

Definer lige dataflowet komplet i dit problem.

Jeg er i tvivl om hvad du egentligt har gang i :)
Avatar billede grave Nybegynder
12. oktober 2001 - 14:09 #10
jeg har en index.html hvorpå jeg trykker på en knap der kalder både en servlet og en jsp side
servletten går så igang med det den skal gøre og sætter nogle properties som jeg fra jsp skal hente:
eks der er en getRunning og setRunning i beanen den er sat default til false så når jsp siden loader vil den være false...
servletten laver så en setRunning(true) den skal jeg  kunne hente fra jsp\'en ved at trykke på en knap.

jeg kan se at servletten er færdig og har sat running til true men når jeg så trykker på jsp.knappen og laver en getRunning() er den stadig false
Avatar billede disky Nybegynder
12. oktober 2001 - 14:17 #11
den bean du kalder fra jsp siden, hvad er scope sat til ?
Avatar billede lbhansen Nybegynder
12. oktober 2001 - 14:19 #12
Hvis du åbner både jsp´en og servletten, får du så reloaded jsp bagefter?

Ellers runder du jo ikke serveren, og kan derfor ikke se den opdateret bean i din session
Avatar billede grave Nybegynder
12. oktober 2001 - 14:33 #13
hvis jeg reloader jsp\'en er den true. jeg troede at hvis siden loader med useBean så havde den kontakt til beanen så hvis jeg fra en innerHTML laver en get Running så gik den ud og kiggede i beanen igen ?
Avatar billede grave Nybegynder
12. oktober 2001 - 14:34 #14
kan jeg ikke få fat i serveren med innerHTML uden at skulle reloade siden ?
Avatar billede lbhansen Nybegynder
12. oktober 2001 - 14:36 #15
nej. Alt javascript bliver udført på klienten, og ikke på serveren.
Avatar billede disky Nybegynder
12. oktober 2001 - 14:39 #16
jeg kan egentligt slet ikke se nogen grund til at kalde en jsp side samtidigt med at en servlet bliver kaldt som sætter data i en bean, som jsp skal bruge.

Lyder som en designfejl (ikke for at være grov)
Avatar billede grave Nybegynder
12. oktober 2001 - 14:40 #17
ja men clienten må da kunne lave en forespørgelse på  serveren uden at skulle reloade siden
Avatar billede lbhansen Nybegynder
12. oktober 2001 - 14:40 #18
i netscape kan du nøjes med at reloade indholdet i det pågældende tag. Men hvem gider lave sider der kun virker i netscape:)
Avatar billede grave Nybegynder
12. oktober 2001 - 14:43 #19
jeg kalder begge to fordi at servletten laver en uplaod af en fil. og jsp\'en viser en status på dene upload da servletten ikke kan skrive ud i browseren før uploaden er kørt færdig så bliver jeg nød til at  åbne en side mere der skal have kontakt til servletten via beanen
Avatar billede grave Nybegynder
12. oktober 2001 - 14:46 #20
du kan da lave en <div id=\"hallo\"></div> og så

document.getElementById(\"hello\").innerHTML=\"<%=
uploadBean.getUploadRunning() %> \" i en knap

eller er det noget jeg har misforstået ?
Avatar billede lbhansen Nybegynder
12. oktober 2001 - 14:46 #21
en måde at håndtere den på er, at servletten opdaterer dens tilstand, og så bliver du nødt til at åbne et nyt vindue, der evt. Reloades hvert sekond
Avatar billede grave Nybegynder
12. oktober 2001 - 14:47 #22
jeg er bare ikke så glad for at skulle reloade hele siden !
Avatar billede disky Nybegynder
12. oktober 2001 - 14:54 #23
hvorfor laver du det ikke som en jsp+bean ???

Så er dine problemmer væk
Avatar billede grave Nybegynder
12. oktober 2001 - 15:00 #24
hvis jeg laver upload servletten om til jsp(side1) vil jeg så kunne opdatere side2 uden at skulle reloade ?
Avatar billede disky Nybegynder
12. oktober 2001 - 15:04 #25
ikke på client siden, det er 100% umuligt, men du kan overføre dine parameter.

Microsoft forsøgte noget push teknologi, men det faldt aldrig i god smag.

EN reload kan kun initieres fra client siden.
Avatar billede mipe1 Nybegynder
12. oktober 2001 - 18:03 #26
Forstået rigtigt ?
du kalder en servlet, som opdaterer en bean og forwarder resultatet til din servlet(det plejer at være praksis)

Så må det være noget med

i servletten
..doPost(....){
//opret bean og sæt værdier
request.setAttribute(\"minBean\",denoprettedeBean);
request.getRequestDispatcher(\"enside.jsp\").forward(request,response);
...
}

enside.jsp:

<jsp:useBean id=\"minBean\" class=\"klassen for Beanen\" scope=\"request\">

herefter burde du kunne tilgå den.


Ved ikke om du sætter di bean i samme scope som du prøver at hive den ud fra, det kan jo være det er det som er problemet
Avatar billede mipe1 Nybegynder
12. oktober 2001 - 18:07 #27
Jeg kan se at du kalder dem \"samtidig\" så
Iøvrigt hvis du vil have dem til at arbejde dem på den samme bean \"samtidig\" så skal de ligge i et scope som begge kan se, f.eks. session eller Application, hvis de ikke er i samme request. Men en eller anden skal jo oprette den
Avatar billede grave Nybegynder
15. oktober 2001 - 00:15 #28
Jeg starter dem samtidigt fra en helt alm html side hvor brugeren trykker på en kanp der submitter til servletten og et javascript der åbner jsp siden.

det er precists sådan jeg har sat dem op. og med \"session\" i jsp\'en

jeg kan godt tilgå den men det er gamle data jeg får fat i
Avatar billede mipe1 Nybegynder
15. oktober 2001 - 00:31 #29
hmm og de henter begge den samme bean ud fra session?

hvorfor kalder du ikke servletten og lader den forwarde til jsp-siden som du nu åbner med et javascript?(det er det jeg har beskrevet ovenfor)


Jsp-siden kaldes ikke før servletten, det kan ikke være problemet?
Avatar billede disky Nybegynder
15. oktober 2001 - 09:07 #30
grave:

Nåpr din scope er request lever bean\'en kun så længe requestet af siden kører. Sæt

scope=\"session\" istedet.
Avatar billede soelvpil Nybegynder
18. oktober 2002 - 08:28 #31
Hvad med at få lukket det spørgsmål.
Avatar billede grave Nybegynder
15. januar 2003 - 11:03 #32
he...
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