2013-06-09 5 views
5

के साथ काम करने के लिए प्रबंधित बीन कैसे सेट करें मैं एक प्रबंधित बीन सेट करना चाहता हूं जो नोट्स व्यू में नोट्स दस्तावेज़ प्रबंधित करता है जहां मैं एप्लिकेशन वरीयताओं को संग्रहीत करता हूं (उदाहरण के लिए सर्वर पर पथ संलग्नक, एप्लिकेशन शीर्षक, कौन सा लोगो प्रदर्शित करने के लिए आदि) क्या कोई इस तरह के बीन के लिए एक उदाहरण है और मुझे इसका उपयोग कैसे करना चाहिए?नोट्स दस्तावेज़

वर्तमान में मैं एक एसएसजेएस लाइब्रेरी को एप्लिकेशन स्कोप या सत्र स्कोप वैरिएबल में सबकुछ एक स्थान लोड करता हूं।

उत्तर

12

यहां प्रबंधित प्रबंधन बीन के लिए एक सरल उदाहरण है।

पहले जावा क्लास बनाएं। मैंने इसे "कॉन्फ़िगर" कहा। यह "कॉन्फ़िगर" देखने में पहला दस्तावेज़ पढ़ता है और जावा फ़ील्ड में आइटम तत्काल समय (= पहली कॉल) पर रखता है। ऐसा करने से आप सभी वस्तुओं को पढ़ने के बाद डोमिनोज़ ऑब्जेक्ट्स को रीसायकल कर सकते हैं और फिर मेमोरी में मान रख सकते हैं।

<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> 

आप गुंजाइश "आवेदन" (प्रति सर्वर उदाहरण) या "सत्र" के रूप में उपयोग कर सकते हैं (उदाहरण के:

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 

} 

अगला चेहरे-config.xml फ़ाइल में एक प्रबंधित सेम के रूप में इस जावा वर्ग को परिभाषित प्रति उपयोगकर्ता)।

तो फिर तुम जावास्क्रिप्ट में config सेम का उपयोग कर सकते हैं:

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

या अभिव्यक्ति भाषा:

#{config.applicationTitle} 

है कि आप एक अच्छा प्रारंभिक बिंदु एक config सेम का एक उन्नत संस्करण को विकसित करने देना चाहिए।

+1

के लिए भी उपयुक्त हो सकता है यह उत्तर मेरे लिए वास्तव में अच्छा लगता है। कुछ और जानकारी के लिए इसमें नोट्स nn9.com/XPages.tv पर कई वीडियो हैं। जेरेमी हॉज ने 3 भाग का परिचय दिया। रसेल माहेर की कुछ सामग्री है और मैंने "जावा बीन्स" शो किया है। सभी XPages के लिए तैयार हैं। मेरे पास इस विषय पर जल्द ही आने वाले कई और कार्यक्रम हैं। –

0

आवेदन-स्कॉप्ड बीन निश्चित रूप से इसके लिए जाने का एक अच्छा तरीका है। एक बार जब आप जावा के साथ अधिक सहज हो जाते हैं, तो हो सकता है कि आप इनमें से कुछ विकल्प सर्वर-व्यापी हैं, तो आप इसके बजाय एक वेरिएबल रीसोलवर या ओएसजीआई प्लगइन का उपयोग करने पर विचार करना चाहेंगे। मैंने xsp.properties से मानों को पुनर्प्राप्त करने के लिए XSnippet भी पोस्ट किया है, जो कुछ सेटिंग्स http://openntf.org/s/retrieve-property-from-xsp.properties-in-nsf-server-or-notes.ini

संबंधित मुद्दे