我想在配置文件中存储html选择框的源代码。这些包含一个冗长的字符串,不经常改变(但偶尔会改变):
我已经使用了commons-configuration。是否可以在某种配置对象(XMLConfiguration,HierarchicalConfiguration等)中使用相同的属性键存储它们?我的意思是能够使用类似于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)。
我不想将它们存储在枚举中,b / c如果不重新编译代码就无法更改它们。
有关如何实现这一目标的任何提示?
答案 0 :(得分: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
答案 1 :(得分:4)
您可以将它们存储在.properties文件中并命名为...
key.0=line0
key.1=line1
key.2=line2
然后在你的代码中使用for循环遍历属性,查找"key." + i
,直到你得到null。
我过去曾这样做过枚举和配置com端口,但效果很好。