2011-01-14 17 views
8

बनाने के लिए एक ही कुंजी का उपयोग गुण मैं एक विन्यास फाइल में एचटीएमएल चयन बक्से के लिए स्रोत स्टोर करने के लिए करना चाहते हैं। इनमें एक लंबा तार होता है जो अक्सर नहीं बदलता है (लेकिन मौसमी करते हैं):विन्यास एक सरणी/सूची

  • Lorem ipsum sit amet nr। 1
  • Lorem ipsum sit amet nr। 2
  • Lorem ipsum sit amet nr। 3
  • Lorem ipsum sit amet nr। 4

मैं पहले से ही कॉमन्स-विन्यास का उपयोग करें। क्या किसी भी प्रकार की कॉन्फ़िगरेशन ऑब्जेक्ट (XML कॉन्फ़िगरेशन, पदानुक्रमित कॉन्फ़िगरेशन इत्यादि) में एक ही प्रॉपर्टी कुंजियों का उपयोग करके उन्हें स्टोर करना संभव है? मेरा मतलब है कि getStringArray() (या सूची) के समान इंटरफ़ेस का उपयोग करके उन्हें एक बार में पुनर्प्राप्त करने में सक्षम होना चाहिए? उदाहरण:

// reject.reason = Lorem ipsum sit amet nr. 1 
// reject.reason = Lorem ipsum sit amet nr. 2 
// reject.reason = Lorem ipsum sit amet nr. 3 
// reject.reason = Lorem ipsum sit amet nr. 4 

config.getStringArray(reject.reason) 

मैं क्योंकि, पहले, कारणों लंबी हैं, और दूसरा, वहाँ कारणों के बहुत सारे (> 10) कर रहे हैं उन्हें एक ही लाइन पर अलग रखने के लिए नहीं करना चाहती।

मैं enums में या तो, उन्हें स्टोर करने के लिए b/c यह कोड recompiling बिना उन्हें बदलने के लिए असंभव हो जाएगा नहीं करना चाहती।

यह कैसे प्राप्त करने के लिए पर कोई संकेत?

उत्तर

13

आपका उदाहरण मेरे लिए ठीक लग रहा है। आप एक ही कुंजी का उपयोग कर मानों की सूची निर्दिष्ट करते हैं, वे एक सूची के रूप में इलाज कर रहे हैं, और निम्न काम करना चाहिए:

reject.reason = Lorem ipsum sit amet nr. 1 
reject.reason = Lorem ipsum sit amet nr. 2 
reject.reason = Lorem ipsum sit amet nr. 3 
reject.reason = Lorem ipsum sit amet nr. 4 

अपने जावा कोड में:

PropertiesConfiguration config = new PropertiesConfiguration("gui.properties"); 
String[] reasons = config.getStringArray("reject.reason"); 

http://commons.apache.org/configuration/userguide/howto_properties.html#Lists_and_arrays

+0

ग्रेट, धन्यवाद, डॉगबेन! क्या आपको पता है कि कॉमन्स-कॉन्फ़िगरेशन के पास यूटीएफ -8 एन्कोडेड संसाधन बंडलों के लिए किसी भी मौके से कुछ समर्थन है? –

4

आप उन्हें एक .properties फ़ाइल और के रूप में नाम पर गुण के माध्यम से एक साथ पाश जब तक आप एक अशक्त वापस पाने "key." + i की तलाश के लिए स्टोर कर सकता है ...

key.0=line0 
key.1=line1 
key.2=line2 
अपने कोड पुनरावृति में

तो।

मैं गणना और कॉम बंदरगाहों कॉन्फ़िगर करने के लिए अतीत में यह किया है और यह अच्छी तरह से काम करता है।

+0

यही है मैं लिख रहा था :) आप मानक कॉन्फ़िगरेशन ऑब्जेक्ट को अपने स्वयं के रैपर में भी लपेट सकते हैं जो आपके लिए यह करता है। – extraneon

+0

ठीक है, यह मेरा पहला विचार भी था। मैं बस विश्वास नहीं कर सकता कि वहां इस उपयोग के मामले के लिए तैयार समाधान नहीं है। इसके अलावा, मुझे लगता है कि यह पहले से ही कॉमन्स-कॉन्फ़िगरेशन द्वारा प्रदान किया गया है और मुझे इसे प्राप्त करने के बारे में स्पष्ट जानकारी नहीं मिल रही है। मैं बस अपने आंत के साथ कोशिश करूंगा और अभी उपरोक्त उल्लिखित का उपयोग करूंगा। –

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