我有一个简单的程序,允许用户从表单上传文件。在我的控制器中,我正在设置由上载成功/失败创建的各种模型属性。所有模型属性都显示在同一视图中。让我们看一下我的代码块的结尾:
//doin some stuff, etc...
model.addAttribute("uploadSuccess", "You successfully uploaded " + fileName );
logger.info("Successfully Uploaded " + fileName);
} catch (Exception e) {
logger.error("Load Error: " + e.getMessage());
model.addAttribute("uploadFailure", fileName + " => " + e.getMessage());
return "reports"; //returns reports.jsp
}
} else {
logger.error("Could not upload " + fileName + " because the file was epmty");
model.addAttribute("uploadEmpty", fileName + " because the file was empty.");
return "reports";
}
return "reports";
正如你所看到的,我在这里有一些重复的代码,所以我的问题是:在给定上述条件(成功/失败/其他)的情况下,是否有更简单的方法将字符串映射到属性?
此外,我需要在JSP中使用单个值显示所述属性,而不是我目前拥有的属性:
<c:out value='${uploadSuccess}' />
<c:out value='${uploadFailure}' />
<c:out value='${uploadEmpty}' />
这只是假的。期望的输出将是:
<c:out value='${uploadMessage}' />
使用Spring的ModelMap
addAllAttributes(Map<String,?> attributes)
声明我的方法开头的所有属性是适合这个特定问题的实现,还是会造成不必要的混乱,因为我仍然需要稍后检索它们在代码中?只是在这里蹦蹦跳跳,欢呼。