371 Lotus blogs updated hourly. Who will post next? Home | Downloads | Events | Jobs | Twitter | Bookmarks | Pods | Forum | Blogs | Search | myPL | About 
 
Latest 7 Posts
Controlling the HTTP Expires Header
Wed, May 23rd 2012 52
Quick-n-Dirty: HTML5 UIComponents without effort
Thu, May 17th 2012 121
XSnippets: Cancel a partial refresh via SSJS
Thu, May 3rd 2012 151
Cancel a partial refresh via SSJS
Tue, May 1st 2012 187
Lotus Domino Entwickler ab 07/2012 verfügbar
Sun, Apr 22nd 2012 74
XSnippets: Fire querySave / postSave – Events
Sun, Apr 22nd 2012 132
XSnippets: XPages Localization Setter
Sun, Apr 22nd 2012 111
Top 10
Security: Domino Server Backdoor (2)
Thu, Jan 19th 2012 246
Cancel a partial refresh via SSJS
Tue, May 1st 2012 187
Performance-Killer in der XPage
Mon, Feb 20th 2012 186
Security: Domino Server Backdoor
Sat, Jan 7th 2012 183
“It’s not a feature, it’s a bug!”
Fri, Feb 10th 2012 152
XSnippets: Cancel a partial refresh via SSJS
Thu, May 3rd 2012 151
“Compute Dynamically” Vs. “Compute on Page Load”
Sat, Feb 11th 2012 147
LotusScript in XPages (1): Basics
Sat, Apr 7th 2012 146
XSnippets: Fire querySave / postSave – Events
Sun, Apr 22nd 2012 132
LotusScript in XPages (2): LotusScript-Wrapper
Sun, Apr 8th 2012 129


Sven Hasselbach
Blog Title blog@hasselba.ch
Blog Description XPages & Domino - Der alltägliche Entwickler-K(r)ampf!
Blog URL http://blog.hasselba.ch
RSS Feed http://hasselba.ch/blog/?feed=rss2
PlanetLotus Feed http://planetlotus.org/profiles/rss/sven-hasselbach
Validate Feed feedvalidator.org or validator.w3.org
Feed Last Checked May 24, 2012 12:12:49 AM EST. Realtime Update:
Landed Here Nov 22, 2011
Location Wiesbaden, Hessen, Germany
Posts: # / 1st / Latest - -
Total Hits 3,031. myPL RSS Selections: 1


Recent Blog Posts
52


Controlling the HTTP Expires Header
Wed, May 23rd 2012 6:59a   Sven Hasselbach
After reading a question on stack overflow about setting an own HTTP expires header and the problem that an additional header is generated automatically,  I made some tests how the domino server can be forced to stop this behaviour programmatically. During my tests I was able to stop it by using  facesContext.responseComplete() but this works only for “headless” XPages (set rendered to false). If you are calling the method in a normal XPage (set rendered to true), the generated ou [read] Keywords: domino ibm xpages java javascript server xml
121


Quick-n-Dirty: HTML5 UIComponents without effort
Thu, May 17th 2012 4:20a   Sven Hasselbach
Obviously it was Chris Toohey who first has discovered the way of manipulation UIComponents with the tagName attribute: http://www.dominoguru.com/pages/xpage_xptext_tagName_options.html The xp:text – element can easily manipulated to add HTML5 functionality to a XPages. By overriding the property tagName, the component can be accessed like every other UI component in the component tree. Normally the designer only allows a small list of choices for the tagName property: But this can be [read] Keywords: ibm xpages javascript xml
151


XSnippets: Cancel a partial refresh via SSJS
Thu, May 3rd 2012 12:18a   Sven Hasselbach
With the assistance of Philippe Riand I was able to shorten the original idea of canceling a partial refresh to a single SSJS function.  By setting the HTTP header “X-XspRefreshId” to “@none” it is possible to get the same result as in the posting before, but there is no “Dojo hack” required. function cancelPartialRefresh(){ var response = facesContext.getExternalContext() .getResponse();    response.setHeader("X-XspRefreshId", "@none");    response [read] Keywords: ibm ajax dojo java javascript openntf xml
187


Cancel a partial refresh via SSJS
Tue, May 1st 2012 4:29a   Sven Hasselbach
After reading Tim Tripcony’s blog post , I thought about a way how to cancel a partial refresh via server side javascript. To bring this to life, there are just three things to do: Abort the processing of the request on the server Give feedback to the client that request is canceled Stop Dojo to process the XHR request To stop the processing of a request on the server and to send an empty response to the client, this SSJS code can be used: var response = facesContext.getExternalContext() [read] Keywords: ibm ajax dojo java javascript server xml
74


Lotus Domino Entwickler ab 07/2012 verfügbar
Sun, Apr 22nd 2012 3:29a   Sven Hasselbach
Als erfahrener freiberuflicher Lotus Domino Entwickler suche ich ab Juli 2012 neue Herausforderungen in Form von spannenden Projekten, bevorzugt im XPages-Umfeld. Ich bin deutschlandweit verfügbar, bin aber anderen Länder gegenüber nicht abgeneigt. Auf Wunsch stelle ich natürlich gern mein Profil zur Verfügung. Bei Interesse bitte einfach eine eMail an contacthasselba.ch oder mich auf XING aufsuchen: [read] Keywords: domino lotus xpages email profile
132


XSnippets: Fire querySave / postSave – Events
Sun, Apr 22nd 2012 2:07a   Sven Hasselbach
The second XSnippet I have added to the XSnippet Contest is a help to fire the querySave- and postSave-events from SSJS: Save Datasource & Fire querySave/postSave events If you only do a simple document1.save() , the events of a datasource won’t be executed. To fix this, you have to use the save() method of com.ibm.xsp.model.domino.DominoDocumentData instead: var dsName = "document1.DATASOURCE"; // change this to the name of // the datasource you want // to save var app = facesCont [read] Keywords: domino ibm java openntf
111


XSnippets: XPages Localization Setter
Sun, Apr 22nd 2012 12:45a   Sven Hasselbach
I have submitted some XSnippets for the XSnippets-Contest. This is the first one, the XPages Localization Setter: The Snippet allows to change the language settings of a XPage “On-The-Fly”, including the browser language used, the dojo settings, the ressource files etc. package ch.hasselba.xpages.jsf.core; import javax.faces.context.FacesContext; import javax.faces.application.Application; import javax.faces.event.PhaseEvent; import javax.faces.event.PhaseId; import javax.faces.even [read] Keywords: ibm xpages application dojo java javascript openntf xml
109


LotusScript in XPages (3): Quick-n-Dirty-Aktivierung
Tue, Apr 10th 2012 4:09a   Sven Hasselbach
LotusScript in XPages Dies ist der dritte Teil des Artikels “LotusScript in XPages”. Der erste Teil befindet sich hier, der zweite Teil hier. Die Quick-n-Dirty-Aktivierung Damit die BindingFactory verwendet werden kann, müsste eigentlich ein Plugin erstellt werden, doch es gibt auch eine “Abkürzung”, denn die Factory kann auch über einen angepassten ViewHandler in XPages verwendet werden. Dies ist beim Testen / Entwickeln eine sehr praktische Angelegenheit, da sich d [read] Keywords: ibm lotusscript xpages application xml




129


LotusScript in XPages (2): LotusScript-Wrapper
Sun, Apr 8th 2012 2:58p   Sven Hasselbach
LotusScript in XPages Dies ist der zweite Teil des Artikels “LotusScript in XPages”. Der erste Teil befindet sich hier. Der LotusScript-Wrapper Um dynamischen LotusScript-Code auszuführen, bietet sich die Execute()-Funktion an: Mit der Funktion lässt sich fast der gesamte Umfang der LotusScript-eigenen Backendfunktionalität nutzen, also auch Scriptlibraries einbinden uvm. Leider steht diese Methode jedoch nicht  in Java direkt zur Verfügung (im Gegensatz zur Session.evaluate() [read] Keywords: agent domino lotus lotusscript xpages database java
146


LotusScript in XPages (1): Basics
Sat, Apr 7th 2012 8:44a   Sven Hasselbach
LotusScript in XPages Wäre es nicht schön, wenn man in XPages direkt mit Lotus Script arbeiten könnte? Wenn es einen Weg gäbe, mit der sich Lotus Script-Code direkt in der XPage einbetten liesse, und wie folgt zu verwenden wäre? Prinzipiell ist das möglich, aber der hier dargestellte Weg ist eher als Workaround anzusehen und wird das Alpha-Stadium wohl eher nicht verlassen. Aber es lässt sich anhand dieser Anleitung zeigen, wie man XPages flexibel erweitern und weitere Interpreter-Sprach [read] Keywords: ibm lotus lotusscript xpages application javascript xml
93


ObjectDataSource: Kleines “How To”
Sun, Apr 1st 2012 5:33a   Sven Hasselbach
Mit der Extension Library bzw. dem Upgrade Pack 1 ist für XPages eine neue Datasource-Komponente hinzugekommen, die ObjectDataSource. Diese Datasource kann wie die Standard-Datasources für View und Dokument ebenfalls an den verschiedensten Elementen einer XPage angehangen werden, d.h. sowohl an die UIViewRoot der XPage, als auch in Custom Controls, Repeat Controls oder sonstigen Elementen, die eine DataSource verwenden. Grundlegend gilt für ObjectDataSources, das sie beliebige Java-Objekte be [read] Keywords: xpages interface java javascript oracle xml
68


Bug: facesContext.getRenderResponse()
Sun, Mar 11th 2012 1:28p   Sven Hasselbach
Eigentlich sollte die Methode  getRenderResponse() true zurück liefern, wenn der Code in der Render Response-Phase ausgeführt wird, doch leider ist die Funktion nicht korrekt implementiert. So liefert die Funktion bei einem normalen Seitenaufruf falsche Ergebnisse, bei einem Partial Refresh hingegen funktioniert sie jedoch wie sie soll. Zur Erläuterung verwende ich folgende XPage:                                                  Öffnet man [read] Keywords: ibm bug javascript oracle xml
38


Quick-n-Dirty: Id der UIViewRoot ändern
Sun, Mar 11th 2012 1:13p   Sven Hasselbach
Setzt man dem UIViewRoot-Element eine Id… … ändert sich der generierte HTML-Code entsprechend ab: ... ... Auch kann man auf die UIViewRoot nun mittels der Id zugreifen, ein getComponent(“abc”) liefert die Komponente zurück. [read] Keywords: ibm xml
47


Quick-n-Dirty: SSJS Code vor BeforPageLoad ausführen
Sun, Mar 11th 2012 12:10p   Sven Hasselbach
Um SSJS Code vor dem “BeforePageLoad“-Event auszuführen, kann der Code einfach in eine DataContext-Variable gepackt werden. Die Berechnung der DataContext-Variable sollte auf “ComputeOnPageLoad” gesetzt sein, dann wird der Code auch nur einmal ausgeführt. Als Rückgabewert sollte null verwendet werden, dann verschwindet Sie aus dem Speicher und die Variable ist auch nicht via SSJS referenzierbar. Natürlich bleiben die im SSJS-Code definierten Variablen Ereignisübergre [read] Keywords: ibm javascript xml
186


Performance-Killer in der XPage
Mon, Feb 20th 2012 3:51a   Sven Hasselbach
Dank einer Frage von Ulrich Krause im XPages Developer Forum wurde ein Thema “wiederbelebt”, das mir vor einiger Zeit in einem Projekt aufgefallen ist und sich als wahre Bremse bei XPages-Applikationen herausstellt: Sämtliche Datenquellen (DataContext-Variablen, Repeat Controls, usw.) werden bei jedem Partial Refresh neu berechnet, auch wenn sie nicht das Ziel (bzw. ein Kind-Element des Ziels) des Refreshs sind. Ich nutze als Beispiel hierfür die von Ulrich Krause gepostete Beispie [read] Keywords: ibm ldd lotus xpages ajax java javascript xml
46


Bug: Invalider Java-Code durch berechnete Tag-Attribute
Fri, Feb 17th 2012 8:40a   Sven Hasselbach
António A Ramos hat einen interessanten Bug entdeckt: Werden die Attribute eines HTML-Tags im Designer berechnet, wird die XPage nicht mehr verarbeitet und ein Internal Server Error tritt auf So wird der folgende HTML-Tag ordnungsgemäß gerendert… … jedoch ist eine Berechung nicht zulässig: Der Grund ist dabei die Umsetzung in den Java-Code, denn dieser verwendet das Attribute ungeprüft als Variablenname – was natürlich fehl schlagen muss. So sieht der generierte [read] Keywords: ibm ldd lotus R6 xpages bug java javascript server xml
147


“Compute Dynamically” Vs. “Compute on Page Load”
Sat, Feb 11th 2012 12:29p   Sven Hasselbach
Der Artikel von Mark Roden über den Mix von ${} und #{} zur gleichen Zeit brachte mich dazu, mich noch einmal ausführlich mit dem Thema “Compute Dynamically” und “Compute on Page Load” zu befassen, denn der hervorragende Artikel von Paul Withers erläutert zwar die grundsätzlichen Unterschiede zwischen den beiden Berechnungsvarianten, allerdings gibt es noch ein paar Ungereimtheiten. Um einen Überblick über die Unterschiede bei der Verwendung aufzuzeigen, sind hier z [read] Keywords: xpages bug java javascript
152


“It’s not a feature, it’s a bug!”
Fri, Feb 10th 2012 2:50a   Sven Hasselbach
In meinem letzten Beitrag habe ich einen Bug entdeckt, den ich an dieser Stelle noch etwas ausführlicher darstellen möchte, denn es handelt sich hierbei nicht um ein normales Verhalten von JSF, sondern schlichtweg um einen Bug während der Transformation nach Java. Im Vorfeld möchte ich jedoch auf einen sehr guten Artikel von Paul Withers aufmerksam machen, in dem ausführlich dargestellt wird, wie es sein müsste: http://www.intec.co.uk/xpages-bindings-when-runs-at-page-load/ Der Einfachheit [read] Keywords: odf R8 xpages bug java javascript
71


Bug: ${} in Output Script-Blöcken
Wed, Feb 8th 2012 5:48a   Sven Hasselbach
Bei der Verwendung eines Output Scripts muss darauf geachtet werden, dass kein Code verwendet wird, der eine Zeichenfolge beinhaltet, die eine “Compute On Load“-ähnliche Syntax hat: Ein Bug sorgt dafür, das bei der Verwendung von ${} (mit oder ohne Inhalt) einiges durcheinander gerät, und der komplette SSJS-Code falsch verarbeitet wird. So gibt folgender Code wie zu erwarten eine Messagebox mit der Id des Labels aus…                              [read] Keywords: ibm bug xml
51


DataContext-Variablen
Wed, Feb 1st 2012 5:05a   Sven Hasselbach
Will man auf die DataContext-Variablen einer XPage zugreifen, gibt es die Möglichkeit, die Methode getDataContexts() zu verwenden, die für jede UIComponent existiert. Die Methode liefert eine java.util.List zurück, die sich z.B. in einen Array verwandeln lässt, um auf die einzelnen Mitglieder zu zugreifen. Die Mitglieder wiederum sind vom Typ com.ibm.xsp.model.DataContext, mit getVars() lässt sich auf den Inhalt der jeweiligen Variable zugreifen. Hier ein Beispiel: view.getDa [read] Keywords: ibm java javascript xml
246


Security: Domino Server Backdoor (2)
Thu, Jan 19th 2012 8:11a   Sven Hasselbach
Aus einer XPages-Applikation lässt sich der XSP Command Manager (das zugrundeliegende OSGi Framework) fernsteuern. Das Kommando entspricht dem Befehl tell http xsp auf der Domino Serverkonsole, nur dass hierfür kein Serverkonsolenzugriff benötigt wird. Mit Hilfe der folgenden XPage lassen sich beliebige OSGi-Kommandos absetzen, also z.B. Prozesse starten, Bundles installieren (egal von welcher Quelle, auch aus dem Internet) und vieles mehr.                          [read] Keywords: domino ibm xpages java javascript security server xml
56


Security: Fernsteuerbare DocumentDataSources
Thu, Jan 12th 2012 1:22p   Sven Hasselbach
Analog zu den ViewDataSources lassen sich auch DocumentDataSources über die Adresszeile des Browsers manipulieren: Der URL-Parameter databaseName ermöglicht hierbei die Steuerung der zugrundliegenden Datenbank, und überschreibt einen eventuell in der XPage hinterlegten Wert.                                                                     Wird diese XPage mit dem Parameter databaseName=DB2.nsf aufgerufen und abgeschickt [read] Keywords: ibm db2 security xml
47


Quick-n-Dirty: Locale setzen (2)
Thu, Jan 12th 2012 10:12a   Sven Hasselbach
Wie die Locale-Einstellung für eine einzelne Xpage gesetzt wird, ist hier beschrieben. Um die Einstellung jedoch Applikationsweit zu setzen, kann dies durch einen eigenen ViewHandler umgesetzt werden. Dazu benötigt man eine eigene Java-Klasse, die die bestehende Methode calculateLocale überschreibt: package ch.hasselba.xpages.debug; import java.util.Locale; import javax.faces.context.FacesContext; import javax.faces.application.ViewHandler; public class ViewHandlerSH extends com.ibm.xsp.ap [read] Keywords: ibm xpages application java oracle xml
183


Security: Domino Server Backdoor
Sat, Jan 7th 2012 4:12p   Sven Hasselbach
Mit XPages lässt sich ein Domino Server auf einfachste Weise lahm legen, da man über die Java Runtime beliebige Threads starten kann. Ein kleiner Button startet z.B. Notepad auf einem Windows Domino Server: Bei jedem Klick wird auf dem Domino Server einmal Notepad gestartet. Eine kleine Schleife, und auch ein großzügig dimensionierter Server geht in die Knie. Richtig übel wird es allerdings, wenn dieser Button geklickt wird: ACHTUNG! NICHT AUF PRODUKTIVEN SYSTEMEN AUSFÜHREN! [read] Keywords: domino notes nsd R4 xpages java javascript security server
33


Quick-n-Dirty: Locale setzen
Thu, Jan 5th 2012 5:12a   Sven Hasselbach
Um die Locale-Einstellung einer XPage programmatisch zu beeinflussen, kann die Methode setLocaleString bzw. setLocale des context-Objektes verwendet werden.  Damit die Änderungen übernommen wird, muss die Einstellung im BeforePageLoad gesetzt werden. So ändert ein… context.setLocaleString("zh-tw") … bzw. ein … context.setLocale(java.util.Locale.TAIWAN) …die Spracheinstellungen der generierten XPage. Sowohl das lang-Attribute der HTML-Seite als die Dojo-Konfiguration [read] Keywords: R6 dojo java javascript oracle
25


Security: Fernsteuerbare ViewDataSources
Fri, Dec 30th 2011 5:12a   Sven Hasselbach
Ist bei einer Datenbank die Option “Don’t allow URL open” gesetzt, ist sie nicht mehr im Web erreichbar. Mit den URL-Parametern databaseName und viewName lässt sich in Verbindung mit einer ViewDatasource dieser Schutzmechanismus jedoch aushebeln, und könnte ein Problem darstellen, wenn sich nur auf diese Option verlassen wurde. Als Beispiel dient hier eine lokales NAB, dass zu Demonstrationszwecken eine offene ACL hat (Default = Manager), bei dem die genannte Option jedoch ak [read] Keywords: acl ibm xpages javascript security xml
26


Domino Datasources On-the-Fly (3): ValueBinding & MethodBinding
Thu, Dec 29th 2011 6:12a   Sven Hasselbach
Das ist der dritte Teil der Serie “Domino Datasources On-the-Fly”. Der zweite Teil findet sich hier. Will man eine Wertezuweisung berechnen lassen, muss ein ValueBinding erstellt werden. Damit lässt sich dann z.B. der Formname eines DominoDocumentData-Objektes berechnen (zugegebenermaßen ein kleinwenig sinnlos, da man dies im Code sowieso erledigen könnte…). Hierfür existiert die Methode createValueBinding() der Application-Klasse, mit der ein neues ValueBinding-Objekt instanziert [read] Keywords: domino ibm xpages application javascript xml
20


Domino Datasources On-the-Fly (2): DominoDataView
Tue, Dec 27th 2011 8:11a   Sven Hasselbach
Das ist der zweite Teil der Serie “Domino Datasources On-the-Fly”. Der erste Teil findet sich hier. Views lassen sich ebenfalls programmatisch erstellen, allerdings muss mindestens der Name der Ansicht angegeben sein (und ausserdem muss die Ansicht existieren): var data = new com.ibm.xsp.model.domino.DominoViewData(); data.setVar("view1"); data.setViewName("All"); view.addData(data); Hier eine Beispiel-Implementierung in eine XPage (in der Datenbank muss die Ansicht “All [read] Keywords: domino ibm javascript xml
22


Domino Datasources On-the-Fly (1): Basics
Fri, Dec 23rd 2011 9:11a   Sven Hasselbach
Um eine Datasource On-the-Fly mittels SSJS zu erstellen, muss zum Einen ein neues Datasource-Objekt instanziert werden, zum Anderen die neue Datenquelle der XPage bekannt gegeben werden. Mit dem folgenden Code wird eine neue Document Datasource namens document1 erstellt und dann dem UIViewRoot-Element bekannt gemacht: var data = new com.ibm.xsp.model.domino.DominoDocumentData(); data.setVar("document1"); view.addData(data); Direkt nach der Anlage lässt sich die Datenquelle leider noch nicht [read] Keywords: domino ibm javascript xml
78


Quick-n-Dirty: Die HTTP-Session des Domino-Servers
Wed, Dec 14th 2011 2:11p   Sven Hasselbach
Um mit SSJS auf die HTTP-Session eines Domino-Servers zuzugreifen, ist nicht viel Code nötig: var exCon = facesContext.getExternalContext(); var sess = exCon.getRequest().getSession(); Dadurch lassen sich folgende Informationen ermitteln: getAttribute(Name:String) Liefert gebundenes Objekt des Attributes “Name” zurück getAttributeNames() Liefert die Namen aller Attribute als java.util.Enumeration zurück. getCreationTime() Zeit der Session-Erstellung, Millisekunden seit 1.1.1 [read] Keywords: domino java
18


Quick-n-Dirty: Hijacking TypeAhead in CSJS
Fri, Dec 9th 2011 3:12p   Sven Hasselbach
Matthias Nicklisch hat eine interessante Frage im XPages Forum gestellt, nachdem er festgestellt hat, dass im Designer zwar ein OnStart- / OnComplete-Event für die TypeAhead-Funktion angeboten wird, der Code aber als Deprecated angezeigt wird – und auf der XPage auch nicht funktioniert: Wie kann ein OnStart- / OnComplete-Event trotzdem verwendet werden? Meine Idee dazu ist, den darunter liegenden dojo.xhr-Request zu hijacken, und auf diese Weise die Events zu erhalten. Dadurch lässt sich [read] Keywords: domino ldd lotus xpages dojo javascript server
15


Performance-Tuning (6): Parallele Partial Refreshs
Wed, Dec 7th 2011 12:12p   Sven Hasselbach
Multiple Partial Refreshs sind eine schöne Sache, um mehrere Elemente einer XPage zu aktualisieren. Doch da die AJAX-Requests generell asynchron verarbeitet werden, stellt sich die Frage, in wieweit es erforderlich ist, sie sequentiell wie in dem verlinkten Beispiel abzuarbeiten: Denn je länger die Kette der Partial Refreshs ist, desto mehr Performance gewinnt man, wenn man stattdessen mit parallenen Aufrufen arbeitet. Das verlinkte Beispiel sieht in der parallelen Variante wie folgt aus: XSP. [read] Keywords: xpages ajax dojo wiki
14


Quick-n-Dirty: Das xp:hidden-Element
Tue, Dec 6th 2011 5:12a   Sven Hasselbach
Durch die Verwendung des -Elements lässt sich ein verstecktes Feld auf der XPage anlegen. Hier ein Beispiel mit einem statischen Wert: Die XPages-Engine rendert daraus diesen HTML-Code: Soweit so gut, doch wenn man den Wert dynamisch zuweisen will, rendert die XPages-Engine nicht mehr ein referenzierbares Feld,… … sondern einen -Tag, der natürlich auch den Wert nicht enthält: Will man trotzdem den Wert des Feldes berechnen, gibt es zwei Möglichkeiten: 1. Die Berechnung [read] Keywords: xpages javascript
12


Der neue HTTP Header ‘X-XspRefreshId’
Mon, Dec 5th 2011 8:11a   Sven Hasselbach
Mit Domino 8.5.3 ist der neue HTTP Header ‘X-XspRefreshId’ eingeführt worden, mit dem sich die refreshId eines Partial Refreshs vom Server aus verändern lässt. Dadurch ist es möglich, ein Element zu refreshen, dass Ergebnis dieser Operation jedoch auf ein anderes Element im Client anzuwenden. Hier ein kleines Beispiel anhand einer XPage, die vor dem Partial Refresh wie folgt aussieht: Der Code der XPage ist ebenfalls simpel, ausser das bei einem Partial Refresh der XPage ein Hea [read] Keywords: domino ibm dojo javascript server xml
12


Abbrechen eines Partial Refresh im Client
Sun, Dec 4th 2011 5:12a   Sven Hasselbach
Leider bietet das XSP-Objekt keine Möglichkeit, einen Partial Refresh via CSJS vorzeitig zu beenden. Zwar basiert der Partial Refresh-Mechanismus auf dojo.xhr-Requests, die diese Funktionalität bieten, doch das XSP-Objekt stellt keine Möglichkeit zur Verfügung, auf die darunter liegenden Dojo-Objekte zuzugreifen. Um dennoch Zugriff auf die Requests zu erhalten, müssen die Aufrufe von dojo.xhrGet und dojo.xhrPost daher direkt abgefangen und umgebogen werden. Dadurch kann auf das  zurück ge [read] Keywords: ajax dojo
11


Quick-n-Dirty: Leeres NotesDocumentCollection-Objekt instanzieren
Mon, Nov 28th 2011 11:11a   Sven Hasselbach
Domino bietet Out-of-the-Box leider keine Möglichkeit, ein leeres NotesDocumentCollection-Objekt zu instanzieren. Um trotzdem in den Genuss zu kommen, mit einer leeren NotesDocumentCollection arbeiten zu können, ist der schnellste Weg, einfach alle Dokumente der Datenbank zu verwenden und von sich selbst “abzuziehen”. In SSJS sieht das wie folgt aus: /*****  *** getEmptyDocumentCollection()  *** returns an empty NotesDocumentCollection-Object  *****/ function getEmptyDocumentCo [read] Keywords: domino lotusscript database java
11


OpenNTF XSnippets Beta gestartet
Tue, Nov 22nd 2011 3:45p   Sven Hasselbach
XSnippets – The next generation code bin, ist als Beta gestartet. Das neue OpenNTF Projekt dient als Sammlung für kleine Code-Schnipsel, die von der Community für die Community zur Verfügung gestellt werden. Hier sind die ersten Schnipsel zu finden. [read] Keywords: community openntf
10


Performance-Tuning (5): Links und xsp.redirect
Fri, Nov 18th 2011 8:53a   Sven Hasselbach
Ein Serverseitiger Redirect wird durch die XPages-Engine standardmäßig so durchgeführt, daß an den Client ein spezieller HTTP-Header gesendet wird, der via Javascript ausgewertet und dann durch CSJS geöffnet wird. Der Hintergrund hierbei ist, daß sich dadurch die URL in der Browser-Addressleiste ändert, und so dem Nutzer die Seitenänderung aktiv angezeigt wird. Das Problem hierbei ist jedoch, daß dadurch ein zusätzlicher Request vom Server an den Client gesendet wird, der zum Einen nat [read] Keywords: xpages google javascript properties server
9


Art des Refreshs programmatisch ermitteln
Sun, Nov 13th 2011 3:16p   Sven Hasselbach
Um festzustellen, ob das Berechnen eines Elementes von einem Full Refresh oder einem Partial Refresh ausgelöst wird, kann die Klasse com.ibm.xsp.ajax.AjaxUtil verwendet werden. Die Klasse stellt die Methode isAjaxPartialRefresh() bereit, die das nötige Ergebnis zurückliefert. Hier eine Beispiel-XPage, die die Verwendung demonstriert:                                  Hier ein Screenshot der XPage beim Aufruf der XPage. Durch Klick auf die Buttons [read] Keywords: ibm ajax javascript xml
8


Application-Properties mittels SSJS auslesen
Sun, Nov 13th 2011 1:54p   Sven Hasselbach
Um Serverseitig zu ermitteln, welche Dojo-Version verwendet wird, kann folgender Code verwendet werden:    [Code liefert unter 8.5.3 in der Standard-Einstellung "1.6.1" zurück] Um zu ermitteln, ob die Clientseitige Validierung aktiviert bzw. deaktiviert ist, liefert die Methode isClientSideValidation() das gewünschte Ergebnis: [Liefer true bzw. false zurück, je nach Einstellung der Datenbank] Welche Komprimierungseinstellung verwendet wird, kann so ermittelt werden: [Lie [read] Keywords: ibm application dojo javascript properties
8


Performance-Tuning (4): Fein-Tuning von xsp.resources.aggregate
Fri, Nov 11th 2011 12:55p   Sven Hasselbach
Mit Domino 8.5.3 wurde eine neue Option eingeführt, mit der automatisch verschiedene Ressourcen-Dateien vom Server vor der Auslieferung an den Browser zusammengefasst werden. Dadurch läßt sich die Performance einer Web-Applikation deutlich erhöhen, denn zum Einen werden dadurch weniger Anfragen vom Browser an den Server gesendet,  zum Anderen wird der Browser nicht unnötig “blockiert”, da sich die Anzahl der zu ladenden Ressourcen deutlich reduziert (siehe dazu RFC 2616) In fo [read] Keywords: domino ibm xpages css dojo javascript properties server
14


Performance-Tuning (3): XSPClientLite.js
Thu, Nov 10th 2011 2:09p   Sven Hasselbach
Im xsp.properties-File gibt es einen undokumentierten Parameter, mit der sich eine abgespeckte Version der JavaScript-Routinen im Client einbinden läßt: die XSPClientLite.js. Die Library wird bei einer Standard-Installation von der IBM mitgeliefert. Hierbei handelt es sich um eine deutlich kleinere Version der XSP Routinen, allerdings auch mit einem kleineren Funktionsumfang: Es fehlen z.B. die Routinen für Partial Refreshs, auf die aber je nach Anwendungsfall auch verzichtet werden kann. Hin [read] Keywords: ibm javascript properties
11


Quick-n-Dirty: Kontrolle über $$OpenDominoDocument
Wed, Nov 9th 2011 3:29p   Sven Hasselbach
Wird ein Dokument via $$OpenDominoDocument.xsp geöffnet, muß nicht zwangsläufig eine passende XPage mit gleichem Namen der gespeicherten Form vorhanden sein, um das Dokument anzuzeigen. Auch über das xsp.properties-File läßt sich das Verhalten steuern. Durch folgende Eintrag kann einer Form eine bestimmten XPage zugeordnet werden: xsp.domino.form.xpage.formname=xpage Wichtig ist, daß der Name der Form klein geschrieben sein muß. Um der Form TestForm (bzw. dem Wert des Form-Feldes) die XP [read] Keywords: domino properties
9


Quick-n-Dirty: Dojo-Version auf Datenbankebene setzen
Wed, Nov 9th 2011 12:20a   Sven Hasselbach
Will man unterschiedliche Dojo-Versionen einsetzen, ist dies nicht nur auf Serverebene möglich. Auch für jede einzelne Datenbank läßt sich die gewünschte Dojo-Version über das xsp.properties-File vorgeben. Zwar greift die Manipulation der Dojo-Version im xsp.properties-File nur auf dem Domino-Server (die installierte Version vorausgesetzt)… xsp.client.script.dojo.version=1.5.0 …fügt man allerdings folgende Zeile in das xsp.properties-File in der Datenbank hinzu, wird die entsp [read] Keywords: domino notes xpages dojo properties server
11


Quick-n-Dirty: Manipulation von UI Komponenten via SSJS (2)
Thu, Nov 3rd 2011 2:45p   Sven Hasselbach
Ist einer der Items durch einen Mehrfachwert definiert worden,  muss das entsprechende Item anders behandelt werden. Eine Definition wie folgt…             …ist auch intern als Array zu behandeln. Eine Funktion, die mit beiden Item-Typen umgehen kann (auch im Mix), kann dann wie folgt aufgebaut sein: function getSelectableValues( id ) {    var ComboBox = getComponent( id );    var ChildrenList:java.util.ListIterator; ChildrenList = ComboBox.getChildren().listItera [read] Keywords: ibm java javascript
11


Quick-n-Dirty: Manipulation von UI Komponenten via SSJS
Thu, Nov 3rd 2011 9:48a   Sven Hasselbach
Serverseitig lassen sich die die Items einer Auswahlbox (z.B. eine Combobox, Listboxen, usw.) auslesen und ggf. manipulieren. Hier eine Combobox mit drei Items:          Um via SSJS die Items der UI Komponente und deren Eigenschaften zu erhalten, kann man wie folgt darauf zu greifen: function listSelectableValues( id ) {    var cBox = getComponent( id );    var cList:java.util.ListIterator; cList = ComboBox.getChildren().listIterator();    while (ChildrenList.hasNext()) {    [read] Keywords: java javascript




Created and Maintained by Yancy Lent - About - Blog Submission - Suggestions - Change Log - Blog Widget - Advertising - FAQ - Mobile Edition