我正在使用Struts2框架处理Web应用程序。我有一项任务是从配置了特定于应用程序的值的属性文件中访问值。我知道可以使用Struts Resource Bundle访问它,通过在struts.xml文件中定义i18n资源,并且可以使用getText方法通过扩展ActionSupport类来获取值。这种访问属性的方式适用于Action类或JSP。
但是,我想在Business类中获取其中一个验证的属性。例如,有一个属性maxCount = 4。其中一项业务验证是检查其是否超过maxCount,该属性在属性文件中可用。我不想自己加载属性。相反,struts应该加载属性,我需要从那里获取它。暂时,我已经写了一个静态方法来加载和获取属性,我认为这是错误的做法。
你能指导我吗?
请注意标记为重复的人:
我检查了重复的问题,问题是知道在哪里保留属性文件,以便应用程序可以访问它。我的问题完全不同。我已经实现了获取已在类路径中加载的属性。我想知道在Struts中完成它的完美和标准方法。我想知道使用i18n完成其工作方式的类似方法。我附上了我目前正在使用的代码。我清楚地解释说我需要技术标准的指导,而不是如何做。
public class CFAProperties {
private static Properties props = new Properties();
private static Properties load() {
ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
try {
props.load(classLoader.getResourceAsStream("resources/cfa-config.properties"));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return props;
}
public static String getProp(String key) {
load();
return props.getProperty(key);
}}
答案 0 :(得分:0)
我的回答并未解决您的问题,因为我认为您必须为您的应用参数使用不同的工具。
没有预定义的方法来管理struts中的应用程序配置文件,尽管你可能会错过使用struts内部消息资源,但这不是一个好方法。
我建议在apache https://commons.apache.org/proper/commons-configuration/使用轻型框架。
integer
,float
,String
,...您甚至可以获取参数List
user.file = ${expr:System.getProperty("user.home"}/settings.xml
(根据其他属性更改应用程序设置路径。您可以轻松地将其集成到您的应用程序中,并可以在任何位置访问您的参数。