2009-10-20 9 views
5

मैं स्ट्रैट्स के साथ एक प्रोजेक्ट विकसित कर रहा हूं और मैं सोच रहा था कि संदेश संसाधन ऑब्जेक्ट को सर्वलेट में प्राप्त करना संभव है, जो एक ही प्रोजेक्ट में शामिल है।मैं सर्वलेट में संदेश संसाधन ऑब्जेक्ट कैसे प्राप्त कर सकता हूं?

उस ऑब्जेक्ट को विधि getResources(HTTPServletRequest) के साथ प्राप्त करने की कोई संभावना नहीं है क्योंकि सर्वलेट एक्शन क्लास को विस्तारित नहीं करता है। क्या इसे करने का कोई तरीका है?

अग्रिम धन्यवाद।

उत्तर

6

ठीक है, मुझे अंततः यह पता चला कि यह कैसे किया जाए। अगर कोई एक ही मुद्दे में फंस जाता है, तो यहां समाधान है: java.util.ResourceBundle क्लास का उपयोग अपने सर्वलेट में करें।

तुम बस ResourceBundle गुण क्लास का नाम और स्थान आप, उपयोग करने के लिए आप नीचे देख सकते की तरह चाहते हैं के साथ गुजर बनाने के लिए: आप भी कुछ इस तरह कर सकते हैं

ResourceBundle rb = new ResourceBundle("com.foo.package.theClass", myLocale); 
//And then get the messages from the rb object 
rb.getMessage("myPropertiesKey"); 
+3

संसाधन बंडल सार है (कम से कम जावा 6 में)। आपको क्लास को तुरंत चालू करने के बजाय ResourceBundle.getBundle ("com.foo.package.theClass", myLocale) को कॉल करने की आवश्यकता है। –

+0

आप बिल्कुल सही हैं, जेरेमी। इसे इस तरह से किया जाना है, इसे इंगित करने के लिए धन्यवाद !! –

+0

कक्षा 'java.util.ResourceBundle' में' getMessage() 'कोई विधि नहीं है, लेकिन' getString() 'है। अच्छी सलाह के लिए बहुत बहुत धन्यवाद, यह वास्तव में काम करता है। –

-1

संदेश स्रोत-वस्तु कुंजी ग्लोबल्स.एमएसएसएजीईएसईके ("org.apache.struts.action.MESSAGE") के अनुरोध दायरे में संग्रहीत है।

PropertyMessageResources p = (PropertyMessageResources) request.getAttribute(Globals.MESSAGES_KEY); 
String messageValue = null; 
if (p != null) { 
    // Value for key errors.notempty 
    messageValue = p.getMessage("errors.notempty")); 
} 
+0

आपकी मदद के लिए धन्यवाद लेकिन मैं इसे काम नहीं कर सकता। request.getAttribute (Globals.MESSAGES_KEY); शून्य वापस आता है। मैं इसके बारे में कुछ और जानकारी कहना भूल गया। मैं पुस्तकालय Struts 1.3.10 का इस्तेमाल कर रही हूँ और सर्वलेट web.xml में परिभाषित किया गया है के रूप में आप नीचे देख सकते हैं: \t \t \t <प्रदर्शन नाम> \t \t PvsInterface \t <सर्वलेट-नाम> PvsInterface <सर्वलेट स्तरीय> com.ford.ads.rapid.pvsw.pvs.PvsInterface \t < लोड-ऑन-स्टार्टअप> 1 क्या मुझे कुछ और याद आ रहा है? अग्रिम धन्यवाद –

+0

आप अपने संदेश संसाधनों को कैसे कॉन्फ़िगर करते हैं? क्या आपके struts-config.xml में कुछ ऐसा है: <संदेश-संसाधन पैरामीटर = "स्ट्रूट मैसेज" /> और यदि आप करते हैं, तो आपके क्लासपाथ में आपकी संदेश-संसाधन गुण फ़ाइल है? –

+0

उत्तर देने के लिए धन्यवाद। हां, मेरे पास struts-config.xml फ़ाइल में कॉन्फ़िगर किया गया संदेश संसाधन है। और संसाधन फाइलें हैं जहां कोड है, संसाधनों नामक पैकेज में। –

0

:

ActionContext.getContext().getActionInvocation().getAction() //the action context is threadlocal 

एक बार आपके पास कार्रवाई हो जाने के बाद, आप उस क्रिया के लिए आवश्यक संसाधन प्राप्त करने के लिए टेक्स्टप्रोवाइडर इंटरफ़ेस का उपयोग कर सकते हैं।

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