Questions & Answers

Anonymous
Not applicable

FIRST Personalization - Attribute per OR-Mapper

Moin!

Die User Credentials fรผr die Anmeldung auf unserer Seite stammen aus einer externen Oracle DB. Diese wird รผber ein Datenbank-Schema schreibgeschรผtzt in FirstSpirit eingebunden und per OR-Mapper befragt. Das klappt soweit ganz gut.

Nun sollen auch Attribute der einzelnen User aus der DB ausgelesen werden, wofรผr wiederum der OR-Mapper herhalten muss. Nun funktioniert das Auslesen der Attribut-Spalte, jedoch bekomme ich lediglich einen String mit dem ganzen Inhalt zurรผckgeliefert. Ich mรถchte jedoch nur eine Auswahl der darin enthaltenen Attribute ausgeben per

<fsp:userAttributes  attributes="firstname,lastname"><%= attributevalue %> </fsp:userAttributes>

Grenze ich die Auswahl so ein, wird nichts ausgegeben. Grenze ich die Auswahl nicht ein, bekomme ich den kompletten String "firstname=Test;lastname=TesterNN;address=.....;xxx=yyy;...".

Muss der in der DB hinterlegte String eine bestimmte Form besitzen, damit er korrekt zu einer Key-Value-Liste geparst werden kann? Muss ich das Parsen selbst รผbernehmen? Ist die Form "W=X;Y=Z" inkorrekt?

Bitte um Hilfe! In den Dokumentationen steht rein gar nichts dazu, wie die Attribute zu speichern sind.

Viele GrรผรŸe aus Hamburg,

Nils

0 Kudos
1 Reply
marro
Crownpeak employee

Das ORMapper Attribut-Modul aus FIRSTpersonalization erwartet jedes auszulesende Attribut in einer eigenen Tabellenspalte. Die auszulesenden Attribute werden bei der Konfiguration des Moduls angegeben (Parameter 'Benutzer-Attribute'). Nur die dort angegebenen Attribute kรถnnen hinterher รผber das userAttributes-Tag ausgegeben werden. Um 'firstname' und 'lastname' einzeln auszugeben, mรผssen demnach Tabellenspalten mit diesem Namen existieren und die beiden Attribute im Konfigurationsfeld 'Benutzer-Attribute' des ORMapper Attribut-Moduls angegeben werden.

In Ihrem Beispiel รผberprรผft das userAttributes-Tag, ob zu dem aktuellen Benutzer die Attribute "firstname" und "lastname" ausgelesen wurden. Diese Attribute existieren allerdings nicht, da sie nicht als eigenstรคndige Spalten in der Datenbank angelegt wurden, wie ich aus Ihrem Beitrag schliesse. Stattdessen wird beim Weglassen der Einschrรคnkung der komplette String ausgegeben, da in diesem Fall alle Attribute ausgegeben werden, die in der Konfiguration des Moduls angegeben wurden. Dort wird also der Name der Spalte als auszulesendes Attribut konfiguriert worden sein, die den kompletten String enthรคlt.

Da das Modul kein automatisches Parsen der Attributwerte vornimmt, mรผssten sie den Inhalt der 'attributevalue'-Variablen selbst parsen.

Viele GrรผรŸe,

Donato Marro

0 Kudos

Type a product name