`
changqingonly
  • 浏览: 25556 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

XX.properties路径问题

阅读更多
在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); 
分享到:
评论

相关推荐

    gradle.properties

    org.gradle.jvmargs=-Xmx4608m -XX:MaxPermSize=1024m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 ``` 这里将最大堆内存设为4608MB(4.5GB),并设置了其他相关JVM参数以确保稳定性。 3. **开启...

    properties 工具类 PropertiesUtil java

    下载了就可以直接用。默认路径在项目随意source目录下,获取时直接PropertiesUtil.getInstance().getPropertyValue("xx.properties", "value");

    Struts2的国际化

    在Struts1中,开发者需要在类路径下创建`Application_xx_XX.properties`文件,其中`xx`代表语言编码,`XX`代表国家编码,例如`zh_CN`表示简体中文中国。在`struts-config.xml`中通过`&lt;message-resources&gt;`元素引入...

    java路径详解

    Java路径详解主要涉及Java编程中如何正确处理和访问文件或资源的路径问题。在Java中,路径的解析和使用对于程序的正常运行至关重要,尤其是在处理类路径(ClassPath)资源时。以下是一些关键知识点: 1. **路径类型...

    struts2的国际化

    这些文件通常命名为`FILE-NAME_xx_XX.properties`,其中`FILE-NAME`代表默认资源文件的文件名,`xx`和`XX`分别代表语言代码和地区代码。 - **配置资源文件路径**:开发者需要在`struts-config.xml`(旧版配置方式)...

    struts2上传图国际资源

    在Struts2中,这些文件通常放在`src/main/resources`目录下,并以`messages_xx_XX.properties`的格式命名,其中`xx_XX`是语言和地区代码。 2. **配置资源文件**:在`struts.properties`或`struts.xml`中配置资源...

    AndroidStudio加速编译

    org.gradle.jvmargs=-Xmx4608m -XX:MaxPermSize=1024m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 org.gradle.parallel=true org.gradle.daemon=true android.enableBuildCache=true ``` 这些设置分别...

    PyCharm汉化包.zip

    7. 在`idea.properties`文件的末尾添加一行:`idea.config.path=$USER_HOME\.PyCharmXX\config`(这里的`XX`代表你的PyCharm版本号,如`2021.1`)。 8. 保存并关闭`idea.properties`,然后启动PyCharm。 9. 进入...

    hibernate的中文问题的解决方案

    - 在项目的类路径下创建或找到`hibernate.properties`文件。 - 在此文件中添加以下属性来指定连接数据库时使用的字符集和是否支持Unicode: ```properties hibernate.connection.url=jdbc:mysql://localhost:...

    如何將多國語系的特定資訊都取出1

    - 传入参数1:资源文件所在的package路径,这有助于遍历并找到所有的properties文件。 - 传入参数2:基础的property文件名,不包含具体的语系标识,例如`package.property`。 - 传入参数3:要查询的key值,这个key会...

    liferay6.2源码发布

    为了确保所有库都被加载,你需要修改Tomcat的`conf/catalina.properties`文件,添加`lib/ext`目录到类加载器路径。这可以通过增加以下行来实现: ``` common.loader=${catalina.base}/lib,${catalina.base}/lib/*....

    环境变量配置

    - `path.properties`文件则可能用于指定数据文件的路径。 - **Oracle数据库操作命令** - `imp`(Import)命令用于从DMP文件中导入数据到Oracle数据库。 - `imp username/password@...

    深入android Unable to resolve target ‘android-XX’详解

    2. **Eclipse ADT插件配置问题**:确保Eclipse中的Android Development Tools (ADT)插件已经更新,并正确配置了Android SDK路径。 3. **项目配置错误**:`project.properties`文件中的`target`值可能被错误地设置为...

    【servlet实现第三方支付demo,适合刚入门的新手】

    但那个是刚工作的时候为了了解流程所写,有很多没注意的,今天稍作修改,为了新手能理解,项目导入进去后如果你的路径也是http://127.0.0.1:8080/bf_pay/就不用修改 s.properties。尽量不要让项目有红色xx错误。运行...

    Stream 部署文档.docx

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

    Jboss漏洞利用总结1

    - 利用方法:访问 `http://xx.xx.xx.xx:8080/jmx-console/HtmlAdaptor`,尝试部署 WAR 包获取 shell。如果需要登录,可以通过弱口令爆破尝试。 - 部署成功后,可以在 `jboss.web.deployment` 下观察到新部署的 WAR...

    Unix_Linux下命令行Weblogic安装_部署_与节点管理器配置

    接下来,指定JDK路径(确保与操作系统位数匹配),并根据需要修改端口和服务器名称,最后指定域的存储路径。 在建域完成后,我们需要建立密文以安全地存储WebLogic管理员的登录凭证。在域目录下创建一个名为`boot....

    基于struts2 的网络U盘

    数据库包括用户表和文件表,项目主体由Struts2框架搭建,前台jsp页面表单使用OGNL标签,XX_zh_CN(en_US).properties文件实现中英文国际化,XXAction-validation.xml实现表单校验,MD5加密文件绝对路径,保护文件安全...

    主要是对log4xx的调试使用和封装

    4. **配置文件**:log4xx允许通过配置文件(如log4cpp的properties文件或log4cplus的config文件)来设置日志输出的级别、目的地和格式,方便管理和调整。 5. **日志输出**:日志可以输出到控制台、文件、网络、...

Global site tag (gtag.js) - Google Analytics