将对象从JSP传递给Spring控制器

时间:2010-12-12 20:27:03

标签: java spring jsp spring-mvc

我创建了一个名为Person的类。然后我通过Spring控制器将这个类的对象传递给JSP页面,比如 abc.htm

现在我希望它从 abc.htm 转移回另一个控制器。 我怎么能这样做?

还告诉我,如果任何其他类对象(比如Address类对象)使用该person对象作为参数,那么我如何将该Address类对象传递给控制器​​。

我很困惑,请帮助我。

1 个答案:

答案 0 :(得分:1)

在呈现页面后,您不再位于“Java领域”中,因此您没有对象。您可以根据下一个请求中发回的参数重建它们。

这称为“绑定”。在Spring MVC中,如果您使用<form:x> tags,则会自动(或多或少)完成。然后在您的控制器中,您的对象将作为方法属性访问:

@RequestMapping(..)
public String foo(YourObject object) {..}

如果param的名称与JSP中的名称不同,则可能需要@ModelAttribute注释。 MVC docs写道:

  

将参数绑定到的命令或表单对象:作为bean属性或字段,具有可自定义的类型转换,具体取决于@InitBinder方法和/或HandlerAdapter配置。请参阅AnnotationMethodHandlerAdapter上的webBindingInitializer属性。默认情况下,此类命令对象及其验证结果将作为模型属性公开,使用属性表示法中的非限定命令类名称。例如,类型为“mypackage.OrderAddress”的“orderAddress”。指定参数级ModelAttribute批注以声明特定的模型属性名称。

我建议您查看PetClinic Sample Application以了解其在实践中的效果。