在Struts里是这么处理的:
打开struts-core包里的org.apache.struts.util.PropertyMessageResources类文件,当然是源代码文件啦。
protected synchronized void loadLocale(String localeKey) {
if (log.isTraceEnabled()) {
log.trace("loadLocale(" + localeKey + ")");
}
// Have we already attempted to load messages for this locale?
if (locales.get(localeKey) != null) {
return;
}
locales.put(localeKey, localeKey);
// Set up to load the property resource for this locale key, if we can
String name = config.replace('.', '/');
if (localeKey.length() > 0) {
name += ("_" + localeKey);
}
name += ".properties";
InputStream is = null;
Properties props = new Properties();
// Load the specified property resource
if (log.isTraceEnabled()) {
log.trace(" Loading resource '" + name + "'");
}
ClassLoader classLoader =
Thread.currentThread().getContextClassLoader();
if (classLoader == null) {
classLoader = this.getClass().getClassLoader();
}
is = classLoader.getResourceAsStream(name);
if (is != null) {
try {
props.load(is);
} catch (IOException e) {
log.error("loadLocale()", e);
} finally {
try {
is.close();
} catch (IOException e) {
log.error("loadLocale()", e);
}
}
if (log.isTraceEnabled()) {
log.trace(" Loading resource completed");
}
} else {
if (log.isWarnEnabled()) {
log.warn(" Resource "+name+" Not Found.");
}
}
// Copy the corresponding values into our cache
if (props.size() < 1) {
return;
}
synchronized (messages) {
Iterator names = props.keySet().iterator();
while (names.hasNext()) {
String key = (String) names.next();
if (log.isTraceEnabled()) {
log.trace(" Saving message key '"
+ messageKey(localeKey, key));
}
messages.put(messageKey(localeKey, key), props.getProperty(key));
}
}
}
----------------------------------------------------------------网摘-----------------------------------
--------------------------------1。使用java.util.Properties类的load()方法示例:
InputStreamin=lnewBufferedInputStream(newFileInputStream(name));
Propertiesp=newProperties();
p.load(in);
2。使用java.util.ResourceBundle类的getBundle()方法示例:
ResourceBundlerb=ResourceBundle.getBundle(name,Locale.getDefault());
3。使用java.util.PropertyResourceBundle类的构造函数示例:
InputStreamin=newBufferedInputStream(newFileInputStream(name));
ResourceBundlerb=newPropertyResourceBundle(in);
4。使用class变量的getResourceAsStream()方法示例:
InputStreamin=JProperties.class.getResourceAsStream(name);
Propertiesp=newProperties();
p.load(in);
5。使用class.getClassLoader()所得到的java.lang.ClassLoader的getResourceAsStream()方法示例:
InputStreamin = JProperties.class.getClassLoader().getResourceAsStream(name);
Propertiesp = newProperties();
p.load(in);
6。使用java.lang.ClassLoader类的getSystemResourceAsStream()静态方法示例:
InputStreamin=ClassLoader.getSystemResourceAsStream(name);
Propertiesp=newProperties();
p.load(in);
补充
Servlet中可以使用javax.servlet.ServletContext的getResourceAsStream()方法示例:
InputStreamin=context.getResourceAsStream(path);
Propertiesp=newProperties();
p.load(in);
分享到:
相关推荐
org.gradle.jvmargs=-Xmx4608m -XX:MaxPermSize=1024m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 ``` 这里将最大堆内存设为4608MB(4.5GB),并设置了其他相关JVM参数以确保稳定性。 3. **开启...
下载了就可以直接用。默认路径在项目随意source目录下,获取时直接PropertiesUtil.getInstance().getPropertyValue("xx.properties", "value");
在Struts1中,开发者需要在类路径下创建`Application_xx_XX.properties`文件,其中`xx`代表语言编码,`XX`代表国家编码,例如`zh_CN`表示简体中文中国。在`struts-config.xml`中通过`<message-resources>`元素引入...
Java路径详解主要涉及Java编程中如何正确处理和访问文件或资源的路径问题。在Java中,路径的解析和使用对于程序的正常运行至关重要,尤其是在处理类路径(ClassPath)资源时。以下是一些关键知识点: 1. **路径类型...
这些文件通常命名为`FILE-NAME_xx_XX.properties`,其中`FILE-NAME`代表默认资源文件的文件名,`xx`和`XX`分别代表语言代码和地区代码。 - **配置资源文件路径**:开发者需要在`struts-config.xml`(旧版配置方式)...
在Struts2中,这些文件通常放在`src/main/resources`目录下,并以`messages_xx_XX.properties`的格式命名,其中`xx_XX`是语言和地区代码。 2. **配置资源文件**:在`struts.properties`或`struts.xml`中配置资源...
org.gradle.jvmargs=-Xmx4608m -XX:MaxPermSize=1024m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 org.gradle.parallel=true org.gradle.daemon=true android.enableBuildCache=true ``` 这些设置分别...
7. 在`idea.properties`文件的末尾添加一行:`idea.config.path=$USER_HOME\.PyCharmXX\config`(这里的`XX`代表你的PyCharm版本号,如`2021.1`)。 8. 保存并关闭`idea.properties`,然后启动PyCharm。 9. 进入...
- 在项目的类路径下创建或找到`hibernate.properties`文件。 - 在此文件中添加以下属性来指定连接数据库时使用的字符集和是否支持Unicode: ```properties hibernate.connection.url=jdbc:mysql://localhost:...
- 传入参数1:资源文件所在的package路径,这有助于遍历并找到所有的properties文件。 - 传入参数2:基础的property文件名,不包含具体的语系标识,例如`package.property`。 - 传入参数3:要查询的key值,这个key会...
为了确保所有库都被加载,你需要修改Tomcat的`conf/catalina.properties`文件,添加`lib/ext`目录到类加载器路径。这可以通过增加以下行来实现: ``` common.loader=${catalina.base}/lib,${catalina.base}/lib/*....
- `path.properties`文件则可能用于指定数据文件的路径。 - **Oracle数据库操作命令** - `imp`(Import)命令用于从DMP文件中导入数据到Oracle数据库。 - `imp username/password@...
2. **Eclipse ADT插件配置问题**:确保Eclipse中的Android Development Tools (ADT)插件已经更新,并正确配置了Android SDK路径。 3. **项目配置错误**:`project.properties`文件中的`target`值可能被错误地设置为...
但那个是刚工作的时候为了了解流程所写,有很多没注意的,今天稍作修改,为了新手能理解,项目导入进去后如果你的路径也是http://127.0.0.1:8080/bf_pay/就不用修改 s.properties。尽量不要让项目有红色xx错误。运行...
2. 编辑环境变量配置文件`sdc-env.sh`,设置数据存储路径、日志路径以及Java选项: ``` # vim ./libexec/sdc-env.sh export SDC_DATA=/home/sdc/streamsets-datacollector-3.11.0/rundata export SDC_LOG=/home/...
- 利用方法:访问 `http://xx.xx.xx.xx:8080/jmx-console/HtmlAdaptor`,尝试部署 WAR 包获取 shell。如果需要登录,可以通过弱口令爆破尝试。 - 部署成功后,可以在 `jboss.web.deployment` 下观察到新部署的 WAR...
接下来,指定JDK路径(确保与操作系统位数匹配),并根据需要修改端口和服务器名称,最后指定域的存储路径。 在建域完成后,我们需要建立密文以安全地存储WebLogic管理员的登录凭证。在域目录下创建一个名为`boot....
数据库包括用户表和文件表,项目主体由Struts2框架搭建,前台jsp页面表单使用OGNL标签,XX_zh_CN(en_US).properties文件实现中英文国际化,XXAction-validation.xml实现表单校验,MD5加密文件绝对路径,保护文件安全...
4. **配置文件**:log4xx允许通过配置文件(如log4cpp的properties文件或log4cplus的config文件)来设置日志输出的级别、目的地和格式,方便管理和调整。 5. **日志输出**:日志可以输出到控制台、文件、网络、...