SOS!!! Kombination MVC und klassische BSP´s //Expertenprobl.

BusinessServerPages; Erstellung von Webapplikationen.

SOS!!! Kombination MVC und klassische BSP´s //Expertenprobl.

Postby Gerd494 » Tue Jul 25, 2006 4:51 pm

Hallo Zusammen,

ich bin fast am durchdrehen. Ich bekomme Folgendes einfach nicht geregelt.

Ich entwickle eine Komponente mit einem Hauptcontroller, mehreren Subcontrollern und einem Model.

Diese Komponente rufe ich per <bsp:call> aus einer klassischen BSP-Seite mit Ablauflogik auf.

Wenn ich dem <bsp:call> keinen Wert für comp_id mitgebe, verliert die Komponente beim erneuten Request den Kontext, obwohl die BSP-Applikation zustandbehaftet ist und der Controller eine Lebendauer bis Session-Ende hat.
Es scheint so, als wüsste der erneute Aufruf nichts von dem vorherigen.
=> schlecht, da Model und SubController im Nirvana verschwinden.

Wenn ich dem <bsp:call> einen Wert für comp_id mitgebe, dann verhält er sich nicht mehr als TopController und meine 'DoHandleEvent'-Methode wird nicht erreicht.
=> genauso schlecht, da ich auf Benutzereingaben in der Aufrufenden Applikation reagieren müsste. Genau, dass will ich vermeiden, da ich die Komponente in mehreren Anwendungen einsetzen möchte.

Was könnte mein Fehler sein? Ich weiss echt keinen Rat mehr!!!

Vielen Dank für Hilfe!!!

Gruß
Benjamin Gersitz
Gerd494
..
..
 
Posts: 69
Joined: Thu Feb 05, 2004 4:33 pm

Postby Lili881 » Fri Jul 28, 2006 8:39 am

Beni hat geschrieben:Wenn ich dem <bsp:call> keinen Wert für comp_id mitgebe, verliert die Komponente beim erneuten Request den Kontext, obwohl die BSP-Applikation zustandbehaftet ist und der Controller eine Lebendauer bis Session-Ende hat.
Es scheint so, als wüsste der erneute Aufruf nichts von dem vorherigen.
=> schlecht, da Model und SubController im Nirvana verschwinden.


Wenn du die comp_id nicht mitgibst, dann erstellt er jedesmal eine neue Instanz des Controllers und somit ist es klar, dass der Context verschwindet.

Beni hat geschrieben:Wenn ich dem <bsp:call> einen Wert für comp_id mitgebe, dann verhält er sich nicht mehr als TopController und meine 'DoHandleEvent'-Methode wird nicht erreicht.


Hast du mal versucht in der Methode DO_REQUEST ganz zu Begin die Methode dispatch_input( ) aufzurufen? Diese dient dazu, den Request auch an die SUBCONTROLLER weiterzureichen. Dann sollte auch die DO_HANDLE_EVENT erreicht werden.

Herzliche Grüße
Oliver Lamp
Lili881
..
..
 
Posts: 16
Joined: Wed Nov 03, 2004 12:56 am

Postby Gerd494 » Fri Jul 28, 2006 11:05 am

clicknzag hat geschrieben:Hast du mal versucht in der Methode DO_REQUEST ganz zu Begin die Methode dispatch_input( ) aufzurufen? Diese dient dazu, den Request auch an die SUBCONTROLLER weiterzureichen. Dann sollte auch die DO_HANDLE_EVENT erreicht werden.


Mein Problem liegt ja genau darin, dass ich zum einen den Kontext behalten will, also eine COMP_ID mitgeben muss, zum anderen aber der Controller als TopController behandelt werden soll.

In der Methode dispatch_input() findet zu Beginn eine Prüfung auf die COMP_ID statt. Wenn der Controller eine COMP_ID hat, dann wird er nicht als TopController gesehen und es gibt einen Return ohne Verarbeitung.

Ich habe die Sache wie folgt gelöst:

Ich gebe eine COMP_ID mit, die ich mir vor dem Aufruf von dispatch_input( ) merke und dann putze. Damit läuft dispatch_input() wie gewünscht durch.
Nach dispatch_input befülle ich COMP_ID wieder.

Ist zwar gebastelt aber es geht.

Gruß und Danke für die Antwort
Benjamin Gersitz
Gerd494
..
..
 
Posts: 69
Joined: Thu Feb 05, 2004 4:33 pm

Postby Lili881 » Fri Jul 28, 2006 12:29 pm

Wenn es funktioniert!

Eine andere ALternative wäre es vielleicht gewesen, dem <bsp:call> anstelle der comp_id den key mitzugeben. Soweit ich weiss instaziiert er dann einen controller, der dieses key (comp_id) zugeiwesen bekommt.

Vielleicht erkennt die Laufzeit bei erneutem Aufruf der Seite, dass der Controller zu diesem Schlüssel schon existiert und behält dann den Context?!!
Lili881
..
..
 
Posts: 16
Joined: Wed Nov 03, 2004 12:56 am


Return to BSP + BHTML

Who is online

Users browsing this forum: No registered users and 7 guests