Ich habe viele JSON-Objekte in applicationScope, sessionScope und viewScope verwendet, um verwandte Daten zu verfolgen. Schreiben und Lesen dieser in SSJS ist sehr einfach: `Wie kann ich ein JSON-Objekt zu einer Bereichsvariablen in Java hinzufügen?
//Create a app scope variable
applicationScope.put("myvarname", {p1:"part 1", p2:"part2"});
// read and use the app scope variable ...
var myvar = applicationScope.get("myvarname");
//Work with parts as myvar.p1, myvar.p2, etc...
In dem Java-Code, den ich geschrieben habe, habe ich gelernt, diese Variablen zu lesen, die geschrieben wurden mit SSJS das com.ibm.jscript.std.ObjectObject Paket mit mit Code wie folgt:
ObjectObject myvar = (ObjectObject) ExtLibUtil
.getApplicationScope().get(dbkey);
FBSValue localFBS = myvar.get("p1");
String myp1 = localFBS.stringValue();
localFBS = myvar.get("p2");
String myp2 = localFBS.stringValue();
Nun, natürlich möchte ich einen neuen Eintrag mit dem Java-Bean, die dann von SSJS und anderen Java-Beans in der gleichen Weise gelesen werden können, schreiben. Ich habe es geschafft, mit einer Map und einer Hashtable in den Bereich zu schreiben, aber diese stürzen die Logik ab, wenn ich versuche, mit dem ObjectObject zu lesen.
Also, wie würde ich zum Erstellen eines neuen Eintrags im Bereich mithilfe der ObjectObject und/oder FBSValue-Pakete gehen? Ich kann nicht finden, wie man einen neuen FBSValue erstellt, der dann einem ObjectObject hinzugefügt werden kann. Ich bin mir sicher, dass es eine einfache Sache ist, die ein Newbs wie ich verpasst hat.
/Newbs
Danke Tim, ich wusste, du hattest die Antwort. Dieses FBS-Zeug scheint eine Menge Nutzen zu haben. Wofür steht "FBS" und wo könnte es dokumentiert werden? – Newbs
FBS steht für "framebuilder script"; Bevor es Teil von XPages war (und noch bevor XPages XFaces genannt wurde), war die SSJS-Engine Teil von FrameBuilder, den IBM für den Einsatz in Workplace erworben hatte. Als Workplace fehlschlug, versuchten sie herauszufinden, was für eine anderweitige Verwendung gerettet werden könnte. XFaces hatten offensichtlich einen gewissen Wert, also versuchten sie es zu Domino hinzuzufügen ... und hier sind wir. Es überrascht daher nicht, dass FBSValue und seine Nachkommen in der Komponente Javadoc nicht enthalten sind: http://public.dhe.ibm.com/software/dw/lotus/Domino-Designer/JavaDocs/XPagesExtAPI/8.5.2/index.html –