Java 为什么我必须在“a”中传递类的实例;modelMap.addAttribute";在这种情况下的观点?

Java 为什么我必须在“a”中传递类的实例;modelMap.addAttribute";在这种情况下的观点?,java,spring,jsp,spring-mvc,Java,Spring,Jsp,Spring Mvc,我有一个疑问。我正在使用SpringMVC,并在代码中四处游荡。当我遇到这种情况时: 在控制器类中,我有以下方法: @RequestMapping(value = "/foo.html", method = { RequestMethod.GET }) public String showFooJSP(ModelMap modelMap) { modelMap.addAttribute("dee",new Dee()); return "/foo";

我有一个疑问。我正在使用SpringMVC,并在代码中四处游荡。当我遇到这种情况时:

在控制器类中,我有以下方法:

@RequestMapping(value = "/foo.html", method = { RequestMethod.GET })
    public String showFooJSP(ModelMap modelMap) {

        modelMap.addAttribute("dee",new Dee());

        return "/foo";
    }
这个方法调用foo.jsp。在里面,我只想说几句话:

<form:form modelAttribute="dee" action="/action.do" method="GET">
    <td>
        <form:hidden path="deeId">
    </td>
    <td><input type="submit" value="Search"/></td>
</form:form>


当我对控制器的“modelMap.addAttribute(“dee”,new dee());”行进行注释时,当我想要访问jsp时,会出现以下错误:

java.lang.IllegalStateException:既不是BindingResult也不是plain bean名称“dee”的目标对象可用作请求属性

我想知道为什么,因为我想了解为什么spring需要我在本例中至少发送一个“dee”类型的实例


谢谢你的阅读

如果没有它,它将如何解决
?我曾想过,但我不想对此做出假设。因为我认为spring会解决这个问题,从哪里获取模型及其内部属性的引用。模型属性是请求属性。如果您有多个请求属性,那么您希望Spring MVC如何在不指定其名称的情况下理解您的意思呢?嗯,简单地说,Spring总是需要程序员以某种方式显示我在jsp中处理的类/对象?因此,我使用语句“modelMap.addAttribute(“dee”,new dee());”。如果是这样的话,“new Dee()”的实例只是为了通知Spring该类?对,并且给定
path=“deeId”
,Spring MVC将在model属性上查找名为
deeId
的属性,并将其值注入生成的HTML中。如果没有它,它将如何解析
,但我不想对此做出假设。因为我认为spring会解决这个问题,从哪里获取模型及其内部属性的引用。模型属性是请求属性。如果您有多个请求属性,那么您希望Spring MVC如何在不指定其名称的情况下理解您的意思呢?嗯,简单地说,Spring总是需要程序员以某种方式显示我在jsp中处理的类/对象?因此,我使用语句“modelMap.addAttribute(“dee”,new dee());”。如果是这种情况,“new Dee()”的实例只是为了通知Spring该类?对,并且给定
path=“deeId”
,Spring MVC将在model属性上查找名为
deeId
的属性,并将其值注入生成的HTML中。