Coldfusion 检查isStruct或isSimpleValue后获取错误复杂对象错误
我有一个代码显示消息,如果上传过程失败。消息变量可以是结构或字符串。我添加了代码来检查结果是一个结构还是一个简单的值,但仍然会出现复杂的对象错误。有什么我错过的吗 这是我的密码:Coldfusion 检查isStruct或isSimpleValue后获取错误复杂对象错误,coldfusion,Coldfusion,我有一个代码显示消息,如果上传过程失败。消息变量可以是结构或字符串。我添加了代码来检查结果是一个结构还是一个简单的值,但仍然会出现复杂的对象错误。有什么我错过的吗 这是我的密码: if (isStruct(result)) { if(StructKeyExists(result, 'messages')){ theMessage = result.messages; } }else{ if(IsSimpleValue(result)){ t
if (isStruct(result)) {
if(StructKeyExists(result, 'messages')){
theMessage = result.messages;
}
}else{
if(IsSimpleValue(result)){
theMessage = result;
}
}
FormMessage=getLang('CVLizerUploadFailed') & ' ' & getLang('PleaseContactYourAdmin') & ', ' & getLang('ErrorCode') & ' ' & theMessage;
首先,让我们简化您的代码,如下所示。它可以进一步简化,具体取决于前面的代码,您需要查找它。下面的代码将检查结果变量的类型,并根据类型设置消息变量的值
if (isStruct(result) AND StructKeyExists(result, 'messages')) {
theMessage = result.messages;
}
else if (isSimpleValue(result){
theMessage = result;
}
您编写的代码或简化的代码没有问题。我不能肯定最后一行代码是否有错误,因为我没有足够的信息
当结果是一个结构和一个变量时,在两种情况下,在if条件代码块的正下方和正上方使用writedump和abort,以在发生错误时进行检查。它可能是这段代码上面的最后一行或任何其他代码行。我检查了变量,结果发现之前从函数返回的变量是一个结构,它应该是一个字符串(因此result.messages是一个结构,而不是字符串)。谢谢你简化了我的代码。