将 JSP EL byte[] 转换为图像?

convert JSP EL byte[] to image?

我有一个 jsp 页面,如下所示:

<c:forEach var="employeeVO" items="${list}">

    <img src="data:image/jpeg;base64,${employeeVO.employee_pic}" alt="Card image cap"/>
    <h5>${employeeVO.employee_position}</h5>
    <p>${employeeVO.employee_salary}</p>

</c:forEach>       

其中 ${employeeVO.employee_position} 和 ${employeeVO.employee_salary} 工作得很好,因为它们都是字符串类型
我的问题是 ${employeeVO.employee_pic} 这会 return byte[] 我不知道如何将其转换为合法来源?
当我检查页面源代码时,它显示如下:

src="data:image/jpeg;base64,[B@59e9139b"

如果需要更多信息,请告诉我。谢谢。

您不能简单地在 html 中表示 byte[]。

您可以在编写 html 时将文件数据表示为 base64 格式。问题是您发送的不是 base64 字符串,而是字节 []。

您需要按照读取数据的方式公开数据。即需要表示为base64字符串。

为此,您可以在 employeeVO 中创建一个 getter,returns 以 base64 字符串表示文件。举个例子

public String getEmployee_picAsBase64 (){
    ... do logic to convert file in a base64 string and return it.
}

那么,你可以在html中这样写:

<img src="data:image/jpeg;base64,${employeeVO.employee_picAsBase64}" alt="Card image cap"/>