Quick-n-Dirty: SSJS Code vor BeforPageLoad ausführen

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übergreifend erhalten. Hier ein Beispiel, indem die Variable testVar vor dem „BeforePageLoad„-Event befüllt und während des Events ausgewertet wird:

<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core">

   <xp:this.beforePageLoad>
      <![CDATA[#{javascript:
         print("Before PageLoad: " + testVar )}]]>
   </xp:this.beforePageLoad>

   <xp:this.dataContexts>
      <xp:dataContext var="dummy">
         <xp:this.value>
            <![CDATA[${javascript:print("Data Context!");
               testVar = "Data Context!"
               return null}]]>
         </xp:this.value>
      </xp:dataContext>
   </xp:this.dataContexts>
   
</xp:view>
Dieser Beitrag wurde unter Allgemein, Java Script, ServerSide JavaScript, XPages abgelegt und mit , , , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.

3 Antworten zu Quick-n-Dirty: SSJS Code vor BeforPageLoad ausführen

  1. Interessante Anwendung eines Data Contexts. Hast Du da noch mehr Verwendungszwecke?

  2. Fredrik sagt:

    Will the result of the value end upp in the datacontext variable?
    If so where is this datastored (app/session/view/req scope)?

Schreibe einen Kommentar zu Fredrik Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.