来自StreamResource的Vaadin图像URL

时间:2013-12-03 21:39:21

标签: image vaadin

我通过StreamResource从我的数据库中获取图像,然后使用Image()类来显示图片。是否可以从此StreamResource或Image类获取URL? 通过浏览器,我可以发现该图像的URL看起来像:“... / Web / APP / connector / 0/32 / source / Picture-xxx.JPG”

我需要CSSInject图像的URL。

提前致谢

2 个答案:

答案 0 :(得分:1)

所以..

客户端Vaadin资源链接模式如下:

[protocol]+"://"+[currentUrl]+"/APP/connector/"+[uiId]+"/"+[cid]+"/source/"+[filename]

其中:
协议 - 请求协议,
currentUrl - 当前URL,
uiId - Vaadin UI标识符,
cid - 连接器标识符,
filename - filename。

获取网址的示例函数:

String getResourceURL(AbstractClientConnector connector,FileResource resource){

  String protocol = UI.getCurrent().getPage().getLocation().getScheme();
  String currentUrl = UI.getCurrent().getPage().getLocation().getAuthority();
  String cid = connector.getConnectorId();
  Integer uiId = connector.getUI().getUIId();
  String filename = resource.getFilename();

  return protocol+"://"+currentUrl+"/APP/connector/"+uiId+"/"+cid+"/source/"+filename;
}

其中:
连接器例如是Image对象
资源是FileResource

答案 1 :(得分:0)

这是创建request handler的典型用例: 如提供的链接中所述: 请求处理程序对于捕获请求参数或生成动态内容非常有用,例如HTML,图像,PDF或其他内容。