首页 > 解决方案 > 如何在 Coldfusion 中使用 org.apache.commons.configuration

问题描述

我正在尝试利用 PropertiesConfiguration 在冷融合中操作属性文件。使用 org.apache.commons.configuration 1.10 版。

propertyFile = "usergui.properties";

config = createObject("java","org.apache.commons.configuration.PropertiesConfiguration").init(propertyFile);

我正在匹配需要一个字符串的函数 init。我试过做 java.io.file。

标签: javacoldfusionapache-commons-config

解决方案


我发现问题是我没有包含所有依赖项。呃!

function updatePropFile(string propFile, struct propStruct, struct removeStruct){
    propertyFile = propFile;
    javaFile = createObject("java", "java.io.File").init(propertyFile);
    fileStream = createObject("java", "java.io.FileInputStream").init(javaFile);


    config = createObject("java","org.apache.commons.configuration.PropertiesConfiguration").init(javaFile);

    configLayout = config.getLayout();

    for(key in propStruct){
        if(config.containsKey(key)){
            config.setProperty(key, propStruct[key]);
        }else{
            config.addProperty(key, propStruct[key]);
        }
    }

    for(key in removeStruct){
        if(config.containsKey(key)){
            /* clear prop and add as comment */
            value = config.getProperty(key).toString();
            config.clearProperty(key);
            config.addProperty('##'&key, key & "=" & value);
        }
    }

    configLayout.save(createObject("java", "java.io.FileWriter").init(propFile, false));
}

推荐阅读