AndreasOesterle
I'm new here

DomElement aus einem Entity Objekt Performance optimiert auslesen

Jump to solution

Hallo zusammen,

in einem Datenbank Formular haben wir ein CMS_INPUT_DOM Element definiert. Den HTML Inhalt dieses Elements wollen wir nun für jeden Datensatz auslesen. Einfache CMS_INPUT_TEXT Felder können wir prima auslesen über:

entity.getValue("name_" + language.getAbbreviation());

Habe ich aber eine Beschreibung in einem CMS_INPUT_DOM, so gibt entity.get("dom_element_" + language.getAbbreviation()) ein EditorWrapper Objekt zurück, aus dem ich nicht das DomElement bekomme um den HTML Inhalt auszulesen.

Über entity.get("dom_element_" + language.getAbbreviation()).toString() bekommt man den Inhalt des Elements zwar ausgeliefert, jedoch mit XML Formular Beschreibungstags die man nicht in der Ausgabe haben will.

Ich weiss, es gibt die Möglichkeit über den Store das DomElement zu holen, jedoch werden hier wieder DB Requests abgesetzt, die man eigentlich nicht benötigen sollte.

Store contentStore = userService.getStore(Type.CONTENTSTORE, false);

Content2 content2 = (Content2) contentStore.getStoreElement("glossary", IDProvider.UidType.CONTENTSTORE);

Dataset dataset = content2.getDataset(glossar_entry);

FormData formData = dataset.getFormData();

DomElement dom = (DomElement) formData.get(language, "cs_dom_element").get();

String glossar_entry_desc = dom.toText(true);

0 Kudos
1 Solution

Accepted Solutions
kohlbrecher
Crownpeak employee

Hallo Andreas,

der Weg, den du beschrieben hast ist schon der Weg, den wir empfehlen. Siehe hier unter Update oder hier.

Grüße

Jan

View solution in original post

0 Kudos
3 Replies
Peter_Jodeleit
Crownpeak employee

Ich weiss, es gibt die Möglichkeit über den Store das DomElement zu holen, jedoch werden hier wieder DB Requests abgesetzt, die man eigentlich nicht benötigen sollte.

An der Stelle werden nur DB-Requests abgesetzt, wenn der Datensatz noch nicht komplett geladen ist. Das würde aber bei "entity.getValue(..)" genauso passieren.

Peter

Danke für die schnelle Antwort.

Das DB Requests nur abgesetzt werden wenn die Entities nicht vollständig geladen sind hatte ich auch schon bemerkt. Der Request zum Abholen der Table Informationen wird aber nach meinen Beobachtungen aus dem Log bei jedem Content2 Aufruf abgesetzt.

Content2 content2 = (Content2) contentStore.getStoreElement("glossary", IDProvider.UidType.CONTENTSTORE);

Habe ich also mittlerweile schon den effektivsten Weg das DomElement aus dem Entity "glossar_entry" zu holen?

0 Kudos
kohlbrecher
Crownpeak employee

Hallo Andreas,

der Weg, den du beschrieben hast ist schon der Weg, den wir empfehlen. Siehe hier unter Update oder hier.

Grüße

Jan

0 Kudos