控制器是否可以使用来自其扩展的控制器的相同命令实例?

时间:2011-11-07 09:30:38

标签: spring spring-mvc

我有多个SimpleFormController控制器。一个控制器包含一个命令对象,用于过滤其他控制器中的结果。我似乎错过了一些简单的东西,但我似乎找不到在其他控制器中使用命令对象的相同实例的方法。

我的设置是这样的主控制器,让我们称之为RootController扩展SimpleFormController,其余的控制器扩展RootController。我们的想法是命令对象存储在一个地方 - RootController和扩展它的控制器重用同一个对象。但是,它似乎没有那样工作,其他控制器似乎有自己的命令对象副本。

1 个答案:

答案 0 :(得分:1)

表单支持对象只是普通的Pojos,因此您可以相互继承它。

public class BaseCommand {
  ...
}

public class MoreCommand extends BaseComman {
  ...
}

您可能忘记“更新”控制器子类中的commandClass

无论如何:请注意,在Spring 3.0中不推荐使用SimpleFormController。相反,首选注释样式。


更新:命令对象的一个​​INSTANCE只能由一个控制器的INSTANCE处理。所以你可以继承Controller(不要错过调用super),但你不能有两个控制器实例,并希望两者都被调用。

相关问题