メッセージ.properties ファイルで定義されたプロパティにアクセスするにはどうすればいいですか? 質問する

メッセージ.properties ファイルで定義されたプロパティにアクセスするにはどうすればいいですか? 質問する

Groovy Grails アプリケーションがあり、messages.properties で定義されたプロパティにプログラムでアクセスしたいと考えています。

テストとして、次のステートメントを試しました。

println "capacity.created: ${messages.properties['capacity.created']}"

しかし、それは機能しません (例外がスローされます)。

どのような助けでも歓迎します。

ルイス

ベストアンサー1

Groovyでプロパティファイルを読み取るには、ユーティリティクラスを使用できます。設定スラーパーGPath 式を使用して、含まれているプロパティにアクセスします。ただし、ConfigSlurperは標準の Java プロパティ ファイルをサポートしていないことに注意する必要があります。通常、 は、ConfigSlurperプロパティ ファイルに似ているが標準の groovy 表記法​​に準拠している .groovy ファイルを読み取るために使用されます。したがって、文字列は引用符で囲まれ、コメントは または で始まり、ブロック//内にあります/* */。したがって、Java プロパティ ファイルを読み取るには、オブジェクトを作成しjava.util.Properties、それを使用して を作成する必要がありますConfigSlurper

def props = new Properties()
new File("message.properties").withInputStream { 
  stream -> props.load(stream) 
}
// accessing the property from Properties object using Groovy's map notation
println "capacity.created=" + props["capacity.created"]

def config = new ConfigSlurper().parse(props)
// accessing the property from ConfigSlurper object using GPath expression
println "capacity.created=" + config.capacity.created

Groovy コード内からのみプロパティ ファイルを使用する場合は、Groovy 表記法​​のバリアントを直接使用する必要があります。

def config = new ConfigSlurper().parse(new File("message.groovy").toURL())

これにより、標準のプロパティファイルに比べていくつかの優れた利点が得られます。たとえば、

capacity.created="x"
capacity.modified="y"

あなたは書ける

capacity {
  created="x"
  modified="y"
}

おすすめ記事