2013-06-09 10 views
5

Vorrei impostare un bean gestito che gestisca un documento Notes in Notes view in cui memorizzo le preferenze dell'applicazione (ad es. Percorso sul server per memorizzare allegati, titolo dell'applicazione, quale logo mostrare ecc.) Qualcuno ha un esempio per un tale bean e come dovrei usarlo?Come configurare un bean gestito per lavorare con il documento Notes

Corrente Carico una libreria SSJS e posiziono tutto in ambito di applicazione o variabili di ambito sessione.

risposta

12

Ecco un semplice esempio per tale bean gestito.

Per prima cosa creare una classe Java. L'ho chiamato "Config". Legge il primo documento in vista "Config" e inserisce al momento dell'istanziazione (= prima chiamata) gli elementi nei campi java. Facendo questo puoi riciclare gli oggetti di domino dopo aver letto tutti gli elementi e avere i valori in memoria.

package de.leonso; 
import java.io.Serializable; 
import lotus.domino.Database; 
import lotus.domino.Document; 
import lotus.domino.View; 
import com.ibm.xsp.extlib.util.ExtLibUtil; 

public class Config implements Serializable { 
    private static final long serialVersionUID = 1L;  
    private String applicationTitle; 
    // ... other private fields 

    public Config() throws NotesException { 
     Database db = ExtLibUtil.getCurrentSession().getCurrentDatabase(); 
     View view = db.getView("Config"); 
     Document doc = view.getFirstDocument(); 
     applicationTitle = doc.getItemValueString("ApplicationTitle"); 
     // ... read all other items and store them in private fields 
     doc.recycle(); 
     view.recycle(); 
     db.recycle(); 
    } 

    public String getApplicationTitle() { 
     return applicationTitle; 
    } 

    // ... getters for other private fields 

} 

Successivo definire questa classe Java come un bean gestito nel file faces-config.xml:

<faces-config> 
    <managed-bean> 
    <managed-bean-name>config</managed-bean-name> 
    <managed-bean-class>de.leonso.Config</managed-bean-class> 
    <managed-bean-scope>application</managed-bean-scope> 
    </managed-bean> 
</faces-config> 

È possibile utilizzare come ambito "applicazione" (istanza per server) o "sessione" (istanza per utente).

quindi è possibile utilizzare il fagiolo config in JavaScript:

#{javascript:var titel = config.applicationTitle; ...} 

o Expression Language:

#{config.applicationTitle} 

Questo dovrebbe dare un buon punto di partenza per sviluppare una versione avanzata di un fagiolo di configurazione.

+1

Questa risposta mi sembra davvero buona. Per ulteriori informazioni, ora ci sono diversi video su notesjn9.com/XPages.tv in questo. Jeremy hodge ha fatto un intro in 3 parti. Russ Maher ha dei contenuti e io ho fatto uno show "What Is Java Beans". Tutti sono orientati per XPages. Ho molti altri spettacoli su questo argomento in arrivo. –

0

Il bean con ambito applicazione è sicuramente un buon modo per farlo. Una volta che ti senti più a tuo agio con Java, potresti prendere in considerazione l'utilizzo di un VariableResolver o anche un plugin OSGi se alcune di queste opzioni sono a livello di server. Ho anche pubblicato un XSnippet per il recupero dei valori da xsp.properties, che potrebbe anche essere appropriato per alcune impostazioni http://openntf.org/s/retrieve-property-from-xsp.properties-in-nsf-server-or-notes.ini

Problemi correlati