题
在 MVC 应用程序的上下文中(在本例中使用 Spring MVC),假设我在数据库中存储了一些图像路径。如何在视图中显示这些内容?
加载它们然后将它们传递给视图是控制器的工作吗?如果是这样,在 Spring MVC 中如何使用 JSP 来完成此操作?
谢谢
解决方案
将它们作为模型的一部分传递给视图可能是控制器的工作,但我认为处理获取图像是服务层的工作。
更新:Juregen Hoeller 向您展示如何使用带注释的控制器进行操作 这里.
其他提示
这实际上取决于实际图像的获取方式及其用途。
例如,如果您正在建立一个照片共享网站,其中图像是一等公民,我完全同意 达菲莫的答案 - 它们应该由服务层加载并成为模型的一部分。
另一方面,如果相关图像本质上纯粹是演示性的,并且可以在您的 Web 应用程序中作为公共图像使用(例如,您可能将某些进程的状态显示为红/黄/绿灯),则可以渲染它们直接在视野中。当然,在这种情况下,将实际图像路径保留在数据库中是相当奇怪的 - 我宁愿想象图像路径将存储在资源包中的某个位置。
使用后一种方法,大概您拥有的图像路径是相对于某个“基本”文件夹的,完整图像路径将类似于 ${prefix}/${base}/${imagePath}
:
prefix
, ,根据您的部署配置,可以在配置中的某个位置显式指定(例如,如果您有专用的图像服务器),或者简单地如下/context
在哪里context
是部署您的 web 应用程序的路径(如果所有内容都由一台简单的服务器提供,没有负载平衡等...)base
将从配置中获取(或可以为空)imagePath
是你从模型中得到的
使用上述方法直接通过 JSP 渲染图像路径应该很简单。
不隶属于 StackOverflow