代码之家  ›  专栏  ›  技术社区  ›  Lehane

MVC数据库图像显示弹簧

  •  4
  • Lehane  · 技术社区  · 15 年前

    在MVC应用程序的上下文中(在本例中使用SpringMVC),假设我在数据库中存储了一些映像路径。如何在视图中显示这些内容?

    控制器的任务是加载它们然后将它们传递给视图吗?如果是这样,那么如何在使用JSP的SpringMVC中实现这一点呢?

    谢谢

    2 回复  |  直到 15 年前
        1
  •  3
  •   duffymo    15 年前

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

    更新:Juregen Hoeller向您展示了如何使用带注释的控制器。 here .

        2
  •  2
  •   Community CDub    7 年前

    这实际上取决于实际图像是如何获取的,以及它们用于什么目的。

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

    另一方面,如果所讨论的图像在本质上是纯粹的表示性的,并且在您的Web应用程序中作为公共图像提供(例如,您可能将某些进程的状态显示为红色/黄色/绿色灯光),则可以直接在视图中呈现它们。当然,在这个场景中,将实际的图像路径保存在数据库中是相当奇怪的——我宁愿想象图像路径存储在资源包中的某个位置。

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

    • prefix 根据部署配置的不同,可以在配置中的某个位置显式指定(例如,如果您有专用的映像服务器),也可以像 /context 哪里 context 是部署webapp的路径(如果所有内容都是从一个简单的服务器提供的,则不进行负载平衡等…)
    • base 将从配置中获取(或可以为空)
    • imagePath 你从模特身上得到的

    使用上述方法直接通过JSP呈现图像路径应该是很简单的。