Avatar billede rax Praktikant
05. juli 2010 - 12:50 Der er 3 kommentarer og
1 løsning

AJAX response i Oracle ADF 10g + Struts 1.1

Hej eksperter!

Dette er en problemstilling jeg har i min nuværende opgave. Jeg er relativt ny indenfor Oracle ADF 10g og Struts 1.1, som jeg er nødsaget til at arbejde med. Lad mig prøve kort at beskrive problemstillingen:

Struts arbejder med action classes, og med AJAX kalder jeg en action på min side, f.eks. myPage.do?event=MyAction. Dette afvikler automatisk metoden onMyAction(DataActionContext ctx) på serversiden, hvor jeg f.eks. forbinde til database osv. Problemet er, hvis jeg gerne vil have mit AJAX kald til at returnere noget til min browser.

Ajax returnerer jo data ved at udskrive det. Havde det f.eks. været en Servlet klasse jeg kaldte, og ikke en jsp side med underliggende action class, ville jeg blov have kunnet udskrive det jeg vil sende tilbage med en PrintWriter, men fordi jeg kalder JSP siden, vil hele siden jo være det som sendes tilbage til browseren.

Jeg har altså brug for at kunne styre præcis hvad der sendes tilbage til browseren, inde fra action klassen. Kan jeg evt. overskrive alt hvad jsp filen ville sende tilbage? Jeg har prøvet at hive fat i mit HttpServletResponse objekt, og bruge en PrintWriter til at sende mit eget indhold tilbage, men uden held.

Dette kan være lidt indviklet at forklare/forstå, men jeg håber der er folk der har haft en lignende problemstilling før (sende AJAX kald til en action class/event, og modtage et svar), som kan give mig et par hints.

På forhånd tak! :)
Avatar billede arne_v Ekspert
05. juli 2010 - 17:39 #1
Struts 1 er ligesom foer AJAX.

:-)

En mulighed ville vaere at checke hvad de faa AJAX frameworks til Struts 1 bruger.

Bedste ide jeg kan komme paa er:

- action putter beans i en List
- action gemmer List i request
- action forwarder til ajax.jsp
- ajax.jsp outputter List i XML format
Avatar billede arne_v Ekspert
06. juli 2010 - 01:50 #2
Hvis dit AJAX er noget gris som bruger HTML som format, så kan du måske lave et filter som stripper alt det overflødige væk.
Avatar billede rax Praktikant
06. juli 2010 - 15:23 #3
Ironisk nok, så virker det ikke når jeg forwarder igennem min DataActionContext.. men hvis jeg anvender en RequestDispatcher og forwarder til en generisk servlet, så virker det hele.

Tak for dit input arne, det gav mig inspiration til en udemærket løsning :) Smid et svar, så langer jeg nogle point efter dig.
Avatar billede arne_v Ekspert
06. juli 2010 - 15:31 #4
OK
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

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