Spring MVC复杂模型来自多个来源

Max*_*jev 10 java layout templates jsp spring-mvc

好吧,我的问题可能听起来有点模糊,但无论如何它在这里.我正在使用Spring MVC 3.1.M1,JSP 2.1构建一个Web应用程序(没有Tiles,我使用普通的JSP标记文件来构建我的布局).

基本上,我的页面是使用一些常见部分的布局构建的 - 页眉,页脚,横幅,菜单等.这些部分大多是动态的,即包含当前用户的相关信息.

JSP没有"组件"概念,所以我无法在一些地方定义我的模板的一部分及其支持java代码,耦合在一起.在我的@Controllers中,我必须完全填充我的模型,包括页眉,页脚,菜单和其他内容的数据.我真正想要做的是避免这种代码重复.具有一些通用模型填充方法的抽象BaseController类也看起来不太好.

JSP和Spring MVC是经常一起使用的,所以我希望在这个主题上存在一些最佳实践.让我们讨论一下.

mko*_*yak 1

好吧,你有几个选择,尽管它们也不完美..

  1. 就像你提到的抽象控制器
  2. 创建一个将返回模型数据的服务。现在您已经将问题转移到了它可能不属于的服务层,但至少您的控制器可以在每个控制器方法期间进行一次服务调用。
  3. 创建一个过滤器并在过滤器中填充模型的公共部分。
  4. 您可能可以使用注释创建一些怪物,例如,注释控制器方法,然后对控制器对象进行后期处理以注入数据(这,我不知道到底该怎么做,但一定有办法)
  5. spring AOP 或许能够帮助你更优雅地完成 #4

这些只是一些引发讨论的想法