3

我有一个带有 Vaadin portlet 的 Liferay 项目。

我想为我的按钮添加图标。

  Button search = new Button("Search");
  search.setIcon(new ThemeResource("img/silk/add.png"));

但是不知道放哪里?现在我把它放在docroot目录中。

更新

不,我试试这个。

  Button search = new Button("Search");
  search.setIcon(new ThemeResource("LifeRayVaadin-portlet/icons/add.png"));

但是当我在控制台中重新部署项目时

09:34:05,773 WARN  [404_jsp:109] /html/VAADIN/themes/liferay/LifeRayVaadin-portlet/icons/add.png
4

2 回答 2

4

因此,您的 portlet 正在寻找/html/VAADIN/themes/liferay/LifeRayVaadin-portlet/icons/add.png.

icons您可以在下面创建一个目录VAADIN并调用:

search.setIcon(new ThemeResource("../../icons/add.png"));

ThemeResource没有任何路径将在路径中查找文件,VAADIN/themes/yourtheme/因此../../将让您(在这种情况下)到/VAADIN/. 我个人永远不会在项目中硬编码主题或 portlet 的名称,因为当它更改时,您必须检查每个引用并更改它们。

于 2012-10-04T05:52:28.107 回答
1

您可以将图像放在 $PORTLET-NAME/docroot/icons 目录中并使用 Path 调用它们

/$PORTLET-NAME$/icons/add.png

在你的情况下,它将是

 Button search = new Button("Search");

  search.setIcon(new ThemeResource("/$PORLTET-NAME$/icons/add.png"));
于 2012-10-03T08:25:47.063 回答