我创建了一个名为Person的类。然后我通过Spring控制器将这个类的对象传递给JSP页面,比如 abc.htm 。
现在我希望它从 abc.htm 转移回另一个控制器。 我怎么能这样做?
还告诉我,如果任何其他类对象(比如Address
类对象)使用该person对象作为参数,那么我如何将该Address
类对象传递给控制器。
我很困惑,请帮助我。
答案 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以了解其在实践中的效果。