1

这似乎是一个简单的问题,但我找不到答案。如果我有一个组件路径“pathToComponent”,我如何验证它是否有效?现在我正在使用 try/catch,但肯定有更优雅的方式吗?

boolean function isValidComponent( required string pathToComponent ){

    try{
        var metaData = getComponentMetaData( arguments.pathToComponent );
        return true;
    }
    catch( any e ){
        return false;
    }
}

谢谢!

4

1 回答 1

0

如果要测试组件路径是否可以用于创建组件,请使用:

boolean function isValidComponent( required string pathToComponent ) {

    try {

        createObject("component", ARGUMENTS.pathToComponent);
        return true;
    }
    catch(any) {
    }

    return false;
}

如果要物理访问组件,请使用:

string function getComponentLocation( required string pathToComponent ) {

    var normalizedPath  = replaceNoCase(ARGUMENTS.pathToComponent, ".", "/", "ALL");
    var resolvedPath    = expandPath(normalizedPath);
    var fileLocation    = (resolvedPath & ".cfc");

    return fileLocation;
}
于 2015-10-31T11:28:07.143 回答