gpt4 book ai didi

java - Spring - 在jsp文件上显示图像

转载 作者:IT老高 更新时间:2023-10-28 13:53:12 24 4
gpt4 key购买 nike

我的模型存储图像用文件名(作为字符串)和数据(作为字节数组)描述。我使用 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"/>

我该怎么做?

我应该编写 Controller 来处理图像请求吗?

有代码示例吗?


更新

<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>

最佳答案

你不能这样做。您的图像必须通过普通 URL 以某种方式公开。在 Spring MVC 中创建一个 Controller ,该 Controller 在特定 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 中,您可能需要在 Controller 端进行更多编码。但原理是一样的。

关于java - Spring - 在jsp文件上显示图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10066349/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com