Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Spring条件模型属性_Java_Jsp_Spring Mvc - Fatal编程技术网

Java Spring条件模型属性

Java Spring条件模型属性,java,jsp,spring-mvc,Java,Jsp,Spring Mvc,我有一个简单的程序,允许用户从表单上传文件。在我的控制器中,我正在设置上传成功/失败时创建的各种模型属性。所有模型属性都显示在同一视图中。让我们查看我的代码块的结尾: //doin some stuff, etc... model.addAttribute("uploadSuccess", "You successfully uploaded " + fileName ); logger.info("

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

                //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的
addAllAttributes(Map attributes)
在我的方法开始时声明所有属性是否是解决这个特定问题的合适实现,或者它会造成不必要的混乱,因为我以后还必须在代码中检索它们?这里我只是想表达一下想法,干杯。

基本上,您不应该验证@RequestMapping方法中的任何数据。所有的验证都应该在之前完成。请看地图。如果您需要一个工作示例,也可以在代码启动后进行调整。谢谢@Babl,这里我不是在验证任何数据,只是授权模型属性。你是说这也应该从我的
@Controller
中提取出来吗?