Wiki-Quellcode von Servlet-Aktion
Zeige letzte Bearbeiter
author | version | line-number | content |
---|---|---|---|
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}} |