【问题标题】:Spring render many many view for one pageSpring为一页渲染许多视图
【发布时间】:2012-01-04 17:18:49
【问题描述】:

您好,我使用的是 spring mvc,我的页面由左右两列组成。我希望左侧从一个控制器渲染,右侧渲染另一个控制器。如何做到这一点。例如,这里右侧的登录表单是从 LoginController 呈现的,但左侧一直在变化。如何用spring mvc框架来完成。

提前致谢。

【问题讨论】:

  • 您在提交登录表单时期望什么:重新加载整个页面还是只加载右侧?

标签: spring spring-mvc


【解决方案1】:

Spring MVC 本质上并不是一个像您想要的那样的面向组件的框架。一些可能适合您的不同方法

  • 客户端聚合。使用 AJAX 加载不同的“组件”(左、右)
  • 使用更多模板/面向组件的渲染框架。我喜欢Apache Tiles 并在 Preparers 中打破逻辑(类似于 Tiles 中的控制器)。或者您可以使用 JSF 2。不久前,我在 Spring MVC 3 and JSF 2 上写了一篇引导程序/教程,您可能会感兴趣。
  • 全面使用 JSF 2、Tapestry 或 Wicket 等面向组件的框架。

【讨论】:

【解决方案2】:

有多种方法可以实现这一点。您的具体要求是什么?你可以试试:

  1. Portlets - 呈现两个 portlet,每个 portlet 分别呈现。如果只在一个地方需要这样做,那可能有点过头了。

  2. AJAX - 首先渲染一个空页面,然后使用 AJAX 分别获取两个视图。见$.load()

  3. <iframe/> - 嵌入具有两个不同目标 URL 的 iframe。

  4. 使用面向组件的框架(我个人喜欢Wicket)。

这些方法都与 Spring MVC 甚至 Java 无关。

【讨论】:

  • 很好的答案,但我的情况就是这样。我正在使用图块来拆分页面。在左侧这里是登录栏,从登录控制器在右侧这里从电影控制器的/电影列表中呈现,当你去看电影时,你会在右侧面板中看到电影,但在左侧面板中,这里有登录栏,所以我可以不要从视图中调用控制器操作。如何为一个页面呈现两个控制器动作?
  • 我不能用spring本身来完成??
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-02-24
  • 1970-01-01
  • 2017-03-04
  • 1970-01-01
相关资源
最近更新 更多