2012-06-22 8 views
8

मुझे पोर्टल नाम का उपयोग कर संसाधन अनुमति प्राप्त करने की आवश्यकता है।लिफ़ेरे में पोर्टलेट नाम का उपयोग कर पोर्टलेट आईडी कैसे प्राप्त करें?

मेरे पास पोर्टल का नाम आईडी नहीं होगा।

पोर्टलेट के आईडी के लिए संसाधन अनुमति नाम पोर्टल का आईडी है। मैंने पोर्टल टेबल की जांच की, इसमें केवल आईडी और अन्य जानकारी है। पोर्टलेट के अन्य गुण कहाँ से सहेजे जाएंगे?

क्या कोई तरीका है कि मैं पोर्टलेट के नाम का उपयोग करके पोर्टलेट आईडी प्राप्त कर सकता हूं। मेरे पास सभी पोर्टल और तुलना करने के लिए एक कामकाज है, लेकिन अगर मैं सीधे पोर्टलेट के नाम का उपयोग कर पोर्टलेट आईडी प्राप्त कर सकता हूं तो यह सहायक होगा।

यह जरूरी है कि अगर कोई जानता है कि कृपया उत्तर दें, तो यह बहुत मददगार होगा।

अग्रिम

उत्तर

11

धन्यवाद आप कैसे Portlet आईडी पर Portlet नाम आधारित उत्पन्न होता है, आपको जवाब मिल जाएगा के रूप में बारीकी से देखें तो।

यह एक निरंतर पैटर्न है जिसका पालन किया जाता है, ताकि आप पोर्टलेट आईडी का निर्माण कर सकें जैसे कि आपके पास नाम है। लिफाडे पोर्टलेट नाम की मदद से आईडी भी बनाते हैं। portlet-आईडी के

पैटर्न: <portletname in xml>_WAR_<servlet context name i.e. the war file without any special characters such as the hyphen>

उदाहरण के लिए: अपने portlet नाम MyWorkportlet.xml में परिभाषित किया गया है और webapps फ़ोल्डर में उत्पन्न फ़ाइल (आप बिल्ला उपयोग कर रहे हैं) तो उसके एवज में ईद MyWork-portlet है होगा MyWork_WAR_MyWorkportlet हो।

अब यदि आपके पास लाइफरे स्रोत कोड है, तो आप PortletLocalServiceImpl की private _readPortletXML विधि देख सकते हैं।

संपादित करें:
आप एक विशेष पेज (पेज की friendly-url दिया) पर portlets को खोजने के लिए चाहते हैं, तो आप इस answer उपयोगी मिल सकता है।

+0

आप प्रकाश धन्यवाद। लेकिन मुझे सर्वलेट संदर्भ नाम कैसे पता चलेगा जो युद्ध फ़ाइल नाम है यदि मेरे पास एकाधिक युद्ध तैनात हैं। मुझे पता था कि पोर्टल आईडी कैसे बनाया गया है। मेरे पास विभिन्न servlet संदर्भों का हिस्सा कई पोर्टल होगा। – Vijayalakshmi

+0

उसी उदाहरण पर एक ही पोर्टलेट के एकाधिक युद्ध? या कई पोर्टलों के साथ एक युद्ध पैक किया गया? यदि आप पर्यावरण के बारे में विस्तार से बता सकते हैं तो यह उपयोगी होगा –

+0

एकाधिक युद्धों के साथ एक युद्ध जो अजेय हैं। मैंने यह भी देखा है कि पोर्टल आईडी में इंस्टेंस की गई जानकारी होगी। उस मामले में कैसे संभालें। अगर मैं इसे विभिन्न सर्वरों में तैनात करता हूं तो इंस्टेंस आईडी अलग होगी। – Vijayalakshmi

1

आप इस कोशिश कर सकते हैं:

System.out.println("ID : " + themeDisplay.getPortletDisplay().getId()); 

System.out.println("InstanceID: " + themeDisplay.getPortletDisplay().getInstanceId()); 

System.out.println("Portlet Name: " + themeDisplay.getPortletDisplay().getPortletName()); 

को न भूलें:

<% ThemeDisplay themeDisplay = (ThemeDisplay) request.getAttribute(WebKeys.THEME_DISPLAY); 
    themeDisplay.getUser().getScreenName(); %> 
संबंधित मुद्दे