在 Liferay Portlet 中嵌入 jpg

Embedding jpg within Liferay Portlet

我正在使用 Liferay portlet,在 view.jsp 页面中嵌入 jpg 图像时遇到问题。

我的目录结构如下:

webapp
---myportlet
------view.jsp
------myimage.jpg

在我的 view.jsp 页面中,我有以下内容:

<img src="<%=request.getContextPath()%>/myimage.jpg" />

上面的图片路径解析如下:

path = /myportlet/myimage.jpg

在我的 portlet.xml 文件中,我有以下内容:

<supports>
    <mime-type>image/jpeg</mime-type>
    <portlet-mode>view</portlet-mode>
</supports>

我知道一种解决方案是将所有图像放在底层 web/app 服务器中并引用该路径。但强烈建议将这些图像放在 portlet 目录中。

话虽如此,还有一些问题:

  1. 是否可以使用 Liferay 将图像放入 portlet 目录中
  2. 我是否需要对 portlet.xml 或 liferay-portlet.xml 文件进行进一步修改?
  3. 有没有更好的方法来引用 portlet 目录中的图像文件路径
  4. 其他想法?

可以在您的 portlet 中嵌入图像,并通过 <img> 标记呈现。方法如下。

以下代码为您提供根目录,您可以在其中找到 Web 服务器中的所有图像(和其他内容):

request.getContextPath()

然后您将以下路径名附加到您的图像:

/html/<yourportletname>/<portletRelativePathToYourImage>

在此线程的原始 post 中,我声明了一个名为 myportlet 的 portlet,其中嵌入了一个名为 myimage.jpg 的图像。所以显示这张图片的代码如下:

<img src='<%=request.getContextPath() + "/html/myportlet/myimage.jpg"%>' />

希望这对其他人有帮助。