2008-09-15 15 views
7

एक प्रवाह परिभाषा में, मैं एक सेमएक बिंदु में अपने आईडी

(उदाहरण के अपने आईडी एक बिंदु है कि उपयोग करने के लिए कोशिश कर रहा हूँ के साथ एक सेम को एक्सेस करना (।): <evaluate expression="bus.MyServiceFacade.someAction()" />

हालांकि, यह करता है काम नहीं करते। एसडब्ल्यूएफ इसके बजाय एक बीन "बस" खोजने की कोशिश करता है।

प्रारंभ में, मुझे आवश्यक बीन लोड करने के लिए एक सहायक बीन का उपयोग करके इसे खत्म कर दिया गया, लेकिन समाधान बेहद असहज और असहज है। उपनाम का उपयोग है सवाल से भी बाहर है क्योंकि सेम एक बड़ी प्रणाली का हिस्सा हैं और मैं उनके साथ छेड़छाड़ नहीं कर सकता।

संक्षेप में, किसी भी समाधान ने मुझे अपने मूल नाम का उपयोग करके सीधे बीन को फिर से शुरू करने की अनुमति नहीं दी। क्या मौजूदा एसडब्ल्यूएफ रिलीज में भी यह संभव है?

+0

आप एक समाधान मिला? – lud0h

उत्तर

1

यह ईएल पार्सर (आमतौर पर ओजीएनएल या स्प्रिंग वेब फ्लो के लिए जेबॉस-एल) का प्रतिबंध है। ईएल नेविगेशन श्रृंखला को पार्स करने के लिए डॉट नोटेशन का उपयोग करता है, जिसके कारण आप प्रारंभिक व्यवहार का वर्णन करते हैं ("बस" बीन ढूंढने का प्रयास करते हैं)।

-1

मेरे अनुभव में, गेटर विधि के साथ कुछ भी डॉट नोटेशन के माध्यम से पहुंचा जा सकता है। आपके उदाहरण में, bus बीन द्वारा जो भी वस्तु का प्रतिनिधित्व किया जा रहा है, उसे getServiceFacade विधि की आवश्यकता है और getServiceFacade द्वारा लौटाई गई वस्तु को getSomeAction विधि की आवश्यकता होगी।

0

प्रयास करें:।

[ 'bus.MyServiceFacade'] someAction()

या

'bus.MyServiceFacade'.someAction()

यह काम कर सकते हैं, या यह हो सकता है नहीं ... लेकिन इसी तरह की चीजें जेएसपी के लिए अभिव्यक्ति भाषा में उपयोग की जाती हैं।

+0

मैंने दोनों सुझावों की कोशिश की, लेकिन इसका कोई फायदा नहीं हुआ – Arnelism

7

मैं बीन के नाम के चारों ओर बीन एक्सेसर (@) प्रतीक और एकल-उद्धरण दोनों का उपयोग कर ऐसा करने में सक्षम था।

अपने उदाहरण का उपयोग करना: #{@'bus.MyServiceFacade'.someAction()}

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