में beforePageLoad या afterPageLoadcompositeData के लिए एक संदर्भ के साथ एक SSJS चर बनाने:
<xp:this.beforePageLoad>
<![CDATA[#{javascript:
var hlp=compositeData;
}]]>
</xp:this.beforePageLoad>
यह आपको प्रतिपादन चरण के दौरान PropertyMap का उपयोग करने की अनुमति देता है। यदि आप एक संपत्ति परीक्षण आप कर सकते हैं है तो यह इस तरह से acces:
<xp:this.afterRenderResponse>
<![CDATA[#{javascript:
print(hlp.test);
}]]>
</xp:this.afterRenderResponse>
संपादित करें: यह केवल तभी कारगर साबित पेज खोला जाता है (Pageload)। यदि आप पृष्ठ को रीफ्रेश करते हैं, तो यह काम नहीं करेगा। यह आंशिक refreshs साथ चलाने के लिए है, तो आप ऐसा करने के लिए है:
<xc:ccWithId test="I am your property" id="ccWithId" />
यह आप एक नियमित रूप में कस्टम नियंत्रण का उपयोग करने की अनुमति देता है:
सबसे पहले, आप अपने कस्टम नियंत्रण करने के लिए एक आईडी जोड़ने के लिए getComponent() के साथ घटक। xpages-noob द्वारा
<xp:this.beforeRenderResponse>
<![CDATA[#{javascript:
var cmp:com.ibm.xsp.component.UIIncludeComposite = getComponent("ccWithId");
print("Value of 'test' -> " + cmp.getPropertyMap().getString("test"))
}]]>
</xp:this.beforeRenderResponse>
संपादित करें:: अब आप कस्टम नियंत्रण के कार्यक्रम में घटक है जो चर आप चाहते हैं रखती है की propertyMap उपयोग कर सकते हैं ऊपर से एक उदाहरण स्थिर कस्टम नियंत्रण संपत्तियों के लिए ठीक काम करता है। हालांकि, यदि किसी संपत्ति की गणना की जाती है, तो संपत्ति मानचित्र के विभिन्न कार्य फ़ंक्शन मूल्य के बजाय मूल्य बाध्यकारी ऑब्जेक्ट लौटाते हैं। इसलिए, एक एक समाधान के रूप में निम्नलिखित फ़ंक्शन का उपयोग कर सकते हैं:
var thisData:com.ibm.xsp.binding.PropertyMap=getComponent("ccWithId").getPropertyMap();
function getPara(key) {
var x=thisData.get(key);
if (@Ends(typeof(x),"ValueBinding")) return x.getValue(facesContext);
else return x
}
आप के लिए, उदाहरण के लिए, संपत्ति "परीक्षण" मिल चाहते हैं, getPara ("परीक्षण") कहते हैं। लौटाया गया मूल्य compositeData.test के बराबर होना चाहिए।
"पृष्ठ लोड" पर पहले रेंडर रेस्पॉन्स की गणना करने का प्रयास करें ताकि # ( xp: this.beforeRenderResponse>) –
जब मैं पेज लोड पर ईवेंट की गणना करता हूं, तो मुझे एक त्रुटि मिलती है: "getComponent() शून्य है"। वैसे भी, केवल पृष्ठ लोड पर कंप्यूटिंग मेरे मामले में वास्तव में एक विकल्प नहीं है क्योंकि जब इसके पैरामीटर बदलते हैं तो मैं कस्टम नियंत्रण को आंशिक रूप से रीफ्रेश करना चाहता हूं। –
मेरे अवलोकन के आधार पर, यह न केवल समग्र डेटा के लिए होता है बल्कि वर्तमान दस्तावेज़ और xpage में परिभाषित अन्य डेटा स्रोतों के लिए भी होता है। – rfk