Spring条件模型属性

时间:2015-04-02 17:02:24

标签: java jsp spring-mvc

我有一个简单的程序,允许用户从表单上传文件。在我的控制器中,我正在设置由上载成功/失败创建的各种模型属性。所有模型属性都显示在同一视图中。让我们看一下我的代码块的结尾:

                //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)声明我的方法开头的所有属性是适合这个特定问题的实现,还是会造成不必要的混乱,因为我仍然需要稍后检索它们在代码中?只是在这里蹦蹦跳跳,欢呼。

0 个答案:

没有答案