MVC数据库图像显示弹簧

时间:2009-08-04 21:43:05

标签: java spring-mvc

在MVC应用程序的上下文中(在这种情况下使用Spring MVC),假设我有一些存储在DB中的图像路径。如何在视图中显示这些内容?

加载它们然后将它们传递给视图是控制器作业吗?如果是这样,如何在Spring MVC中使用JSP完成?

由于

2 个答案:

答案 0 :(得分:3)

将控件作为模型的一部分传递给视图可能是控制器的工作,但我认为处理获取图像是服务层的工作。

更新:Juregen Hoeller向您展示如何使用带注释的控制器here进行操作。

答案 1 :(得分:2)

这实际上取决于如何获取实际图像以及它们的用途。

如果你正在建立一个照片共享网站,例如,图像是一等公民的,我完全同意duffymo的答案 - 它们应该由服务层加载并成为模特。

另一方面,如果有问题的图像纯粹是表现性的,并且可以在您的网络应用程序中作为公共图像使用(例如,您可能正在显示某些过程的状态为红色/黄色/绿色光),可以直接在视图中呈现它们。当然,在这种情况下,在数据库中保留实际的图像路径是相当奇怪的 - 我宁愿想象图像路径会存储在资源包中的某个位置。

使用后一种方法,假设您拥有的图像路径是相对于某个“基础”文件夹而完整图像路径类似于${prefix}/${base}/${imagePath}

  • prefix,根据您的部署配置,可以在配置中的某处显式指定(例如,如果您有专用的图像服务器),或者像/context那样简单context是部署webapp的路径(如果所有内容都是从一台简单的服务器提供,没有负载平衡等等)。
  • base将从配置中获取(或可以为空)
  • imagePath是您从模型中获得的

使用上述方法直接通过JSP渲染图像路径应该是微不足道的。