Wiki-Quellcode von Servlet-Aktion


Zeige letzte Bearbeiter
1 {{content/}}
2
3 == IPluginServletAction ==
4
5 === Verwendungsmöglichkeiten ===
6
7 {{figure image="plugin_actionservlet.png" width="400" clear="h3"}}
8 Einordnung des //Servlet-Plugins// in die Prozesskette von {{formcycle case="dat"/}}
9 {{/figure}}
10
11 Das Plugin dient der Servlet-bezogenen Auslieferung eigener Inhalte.
12
13 {{panel type="info"}}
14 Der Aufruf der Plugin-Servlet-Implementierung erfolgt über das folgende URL-Pattern.
15 (((
16 **{{{http://<Webdomain>/<FORMCYCLE-Webapplikation>/plugin/?name=<Name der IPluginServletAction-Implementierung>&client-id=<MandantId>}}}**
17 )))
18 Anstatt des Parameters //client-id//, kann auch der Parameter //project-id// angegeben werden. Bei Angabe der //project-id// wird das für die Verarbeitung notwendige Mandant-Objekt aus dem ermittelten Projekt-Objekt bezogen.
19 {{/panel}}
20
21 === Methodesignaturen ===
22
23 Die Plugin-Schnittstelle //IPluginServletAction// referenziert alle durch die [[Basis-Schnittstelle IFCPlugin>>doc:IFCPlugin]] bereitgestellten Methoden
24 und zusätzlich noch folgende Plugin-spezifische Methodensignaturen:
25
26 {{panel title="{{code language='java'~}~}IPluginServletActionRetVal execute(IPluginServletActionParams params) throws FCPluginException{{/code~}~}" triggerable="true" fullwidth="true"}}
27
28 **Übergabewerte:**
29 Der Typ //IPluginServletActionParams// stellt folgende Eigenschaften bereit:
30 * **getRequestParameters():** eine Map mit den aktuell übergebenen Request-Parametern (ohne Uploads)
31 * **getUploadFiles():** eine Map mit allen hochgeladenen Dateien aus dem Request
32 * **getHeaderMap():** eine Map mit den Header-Informationen aus dem Request
33 * **getBenutzer():** der aktuell in der Session referenziert Benutzer
34 * **getSessionAttributeMap():** die aktuell in der Session vorhandenen Parameter
35 * **getLocale():** Informationen zur aktuell gesetzten Sprache und Region
36 * **getFrontend-Server():** Verweis auf den Frontend-Server, wenn Servlet-Plugin über Frontend-Server aufgerufen wurde
37 * **getAction():** Typ des Servlet-Aufrufs
38
39
40 **Rückgabewerte:**
41 Der Rückgabewert muss vom Typ //IPluginServletActionRetVal// sein, eine Referenzimplementierung wird durch die Klasse //PluginServletActionRetVal// bereitgestellt.
42
43 Das Objekt ermöglicht die Rückgabe eines Objektes vom Typ //IServletResponse//, welches die Möglichkeit bietet einen einfachen String, aber auch Binärdaten an den Browser auszuliefern.
44 Über die Bestimmung des **Response-Typs** am //IServletResponse//-Objekt wird festgelegt, wie die übergebenen Response-Daten interpretiert bzw. ausgeliefert werden:
45
46 {{table}}
47 |=Response-Typ|=Beschreibung
48 |**HTML**|Der übergebene //Response//-String wird als fertiges HTML interpretiert und an den Browser ausgeliefert.
49 |**SHOW_FILE**|Die übergeben Daten (Binärdaten und //Response//-String) werden als Dateidownload an den Browser ausgeliefert, wo der Inhalt des //Response//-Strings als Dateinamen interpretiert wird.
50 |**TEMPLATE**|Es wird ein neues HTML-Dokument erzeugt under der übergebene //Response-String// als Inhalt des //body//-Elements genommen.
51 |**TEMPLATE_SYSTEM**|Derzeit identisch zu //TEMPLATE//.
52 |**WEITERLEITUNG**|Der übergebene //Response//-String wird als URL interpretiert und einen Weiterleitung wird durchgeführt.
53 {{/table}}
54
55 Bei fehlerhafter Abarbeitung des Plugins wird eine //FCPluginException// geworfen.
56
57 {{/panel}}