以下是我从WebPage上传多个文件的功能。我的文件位于MultipartFile列表中 - >文件变量。我无法迭代每个文件。但是log.info(“文件”+文件)打印文件[]。这意味着文件返回'[]'。这是什么意思?我哪里错了?
public String addNodeAndDocNew(TreeType treeType, ObjectId parentNodeId, NodeType nodeType, String displayName, String attrList, List<MultipartFile> files, String userId,
String passwd) {
String result = "";
log.info("file"+ files);
log.info("userId=" + userId);
log.info("passwd=" + passwd);
log.info("nodeType=" + nodeType);
log.info("displayName=" + displayName);
if (attrList != null)
log.info("attributesList=" + attrList.toString());
ObjectId nodeId = null;
for(MultipartFile file : files)
{
log.info("Yess");
if (file.isEmpty()) {
log.info("Nothing attached, just adding node, not the doc");
nodeId = addNode(treeType, parentNodeId, nodeType, displayName, attrList, userId, passwd);
if (nodeId != null)
log.info("Just added node, no doc sent");
}
else {
log.info("file=" + file.getOriginalFilename());
nodeId = addNode(treeType, parentNodeId, nodeType, displayName, attrList, userId, passwd);
if (nodeId != null) {
docService.uploadDoc(nodeId, file, userId, passwd);
log.info("Added node, and doc");
} else {
log.info("addNode() returned null");
}
}
if (nodeId != null) {
log.info("addNodeAndDoc completed for node id : " + nodeId.toString());
result += nodeId.toString()+ "@@";
} else
return null;
}
log.info("Yess1");
return result;
}
答案 0 :(得分:0)
但是log.info(文件)打印了文件[]。
所以,你给定的数组是空的。这就是为什么你不能迭代它! ;)
答案 1 :(得分:0)
您正在使用增强型JsonArray result = Json.createArrayBuilder()
.add(Json.createArrayBuilder().add(1).add(12))
.add(Json.createArrayBuilder().add(2).add(5))
.build();
循环和增强型for
循环保护本身失败,如果它尝试迭代的列表是空的,则不执行该块。这正是这里发生的事情。
在您可能遇到for
的情况下检查empty
始终是一个好习惯。