2011-01-14 11 views
8

設定ファイルにhtml選択ボックスのソースを保存したいとします。これらの文字列には、頻繁に変更されない長い文字列が含まれています(ただし時折行うこともあります)。同じキーを使用して配列/リストを作成する設定プロパティ

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

私はすでにコモンコンフィギュレーションを使用しています。何らかの種類の設定オブジェクト(XMLConfiguration、HierarchicalConfigurationなど)に同じプロパティキーを使用してそれらを格納することは可能ですか? getStringArray()(またはリスト)に似たインターフェイスを使用して、それらを一度に取得できることを意味しますか?例:最初、理由は長くあり、そして第二に、理由の(> 10)がたくさんある、ので、私は同じ行に分け、それらを維持する必要はありません

// 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) 

私は列挙型に格納したくないですが、b/cコードを再コンパイルせずに変更することはできません。

これを達成するためのヒントはありますか?

答えて

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 

Javaコードでは:

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

すごく、ありがとう、ドッグベーン! commons-configurationがUTF-8でコード化されたリソースバンドルをサポートしているかどうか知っていますか? –

4

あなたが戻ってヌルを得るまで"key." + iを探してforループでプロパティを使用して...など.propertiesファイルと名前であなたのコードの反復で次に

key.0=line0 
key.1=line1 
key.2=line2 

それらを保存することができます。

これまで私はcomポートを列挙して設定するためにこれを行いました。これはうまく動作します。

+0

それは何をです私は書いていました:)あなたはあなたのためにこれを行う独自のラッパーで標準のConfigurationオブジェクトをラップすることさえできます。 – extraneon

+0

それは私の最初の考えでもありました。私はそこにこのユースケースのための準備ができていない解決策がないと信じることができません。さらに、私はすでにcommons-configurationによって提供されていると感じています。それを入手する方法についての明確な情報は見つかりません。私は私の腸を試してみるだけで、今ここで述べたものを使用します。 –

関連する問題