当前位置: 首页 > 面试题库 >

Spring-在JSP文件上显示图像

董俊晖
2023-03-14
问题内容

我的模型存储映像以文件名(作为String)和数据(作为字节数组)描述。我使用Hibernate,这是我的模型:

@Entity
public class Image {

    private Long id;
    private String name;
    private byte[] data;

    @Id
    @GeneratedValue
    @Column(name = "IMAGE_ID")
    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    @Column(nullable = false, length = 100)
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    @Lob
    @Column(nullable = false)
    public byte[] getData() {
        return data;
    }

    public void setData(byte[] data) {
        this.data = data;
    }
}

但我想在以下网站上显示存储的图像:

<img src="${image.data}" alt="car_image"/>

我该怎么办?

我应该编写服务于图像请求的控制器吗?

有代码示例吗?

更新

<bean id="viewResolver"
    class="org.springframework.web.servlet.view.UrlBasedViewResolver">
    <property name="viewClass"
        value="org.springframework.web.servlet.view.tiles2.TilesView" />
</bean>

<bean id="tilesConfigurer"
    class="org.springframework.web.servlet.view.tiles2.TilesConfigurer">
    <property name="definitions">
        <list>
            <value>/WEB-INF/configs/tiles.xml</value>
        </list>
    </property>
</bean>

问题答案:

你不能这样做。您的图片必须通过普通网址以某种方式公开。在Spring MVC中,创建一个控制器,该控制器返回特定URL下的图像(原始数据):

@RequestMapping(value = "/imageController/{imageId}")
@ResponseBody
public byte[] helloWorld(@PathVariable long imageId)  {
  Image image = //obtain Image instance by id somehow from DAO/Hibernate
  return image.getData();
}

现在在您的JSP页面中使用它。这是HTTP / HTML的工作方式:

<img src="/yourApp/imageController/42.png" alt="car_image"/>

在3.1之前的Spring MVC中,您可能需要在控制器端进行一些编码。但是原理是一样的。



 类似资料:
  • 我已经尝试通过 和 这个问题是因为我放置图像的位置层次结构吗?

  • 我对Spring Boot框架非常陌生,我想澄清一下为什么我会面临这个问题。 问题:. jsp文件未显示在正确的endpoint。 这是我的控制器类 这是我的申请表。属性类 这是我家里的东西。jsp文件 最后,项目目录 当我启动spring boot应用程序时,网站看起来像这样 为什么你认为我看不到家的内容。jsp文件? 感谢您的帮助。 最好, PS:我已经在pom中添加了Tomcat Jaspe

  • 我创建了一个动态web项目,以便通过Servlet显示JSP(我不能使用任何类似Spring的框架…)。默认情况下,我构建的类放在Build/classes中,因此在我将输出文件夹更改为WebContent/WEB-INF/classes后,我的应用程序运行良好。之后,我将该项目转换为Maven项目。(我不记得我上次使用servlet/JSP时需要更改输出文件夹,那是3年前!)。 无论如何,现在我

  • 我正在开发一个推荐服装的网站。所以,我希望客户把他们的形象,这是在他们的地方。 首先,我尝试了。但不提供自定义选项。我必须用我的照片显示按钮。因此,我尝试了按钮选项,并编写了这样的代码。 null null

  • 我有产品的图像。我想在JSP中用html标记呈现这些图像。我把图像放在intellij IDEA的src/main/resources目录中。我正在创建war文件并将其部署到jboss服务器上。我尝试了很多路径来指定img标记的src属性,但都找不到image。我看到了一个解决方案,人们创建另一个servlet并将其本地路径传递给图像来呈现,但我只想用JSP来实现。所以问题是,我应该在哪里保存图像

  • 我写了一个代码,我在GridView中显示图像,但现在我想在每个图像的底部显示文本。 我想这样展示我的网格: 但是像这样[还想为图像显示文本]: main.xml:

  • 问题内容: 我有一个代码可以显示员工图表。 数据(名称,电话,照片等)存储在SQLServer中,并通过JSP显示。可以正常显示数据,但图像.jpg(存储在IMAGE = BLOB列中)除外。 顺便说一句,我已经显示了图像(请参见下面的代码),但是我不知道如何将其放在.css定义的区域中(也请参见以下代码),因为图像是通过resultSet被加载到浏览器的整个页面中。 有谁知道我如何“构图”图像?

  • 问题内容: 我想转换为将在JSP页面上显示的图像。我该如何实现? 问题答案: 首先,JSP是一种视图技术,提供了用于编写HTML / CSS / JS的模板以及与后端Java代码进行交互以控制页面流和访问后端数据的功能。您的问题更多是在HTML中。 现在,要在HTML页面中显示图像,您需要HTML 元素。要定义/分配图像,只需使属性指向URL。例如 (它可以相对于当前上下文,也可以是绝对URL,例