1
Blobを使用してGoogle App Engineに画像を保存しています。 ListDataProviderのadd()メソッドを使用してCellListに新しいデータを追加すると、レンダリングが完璧になります。gwt CellListの画像を更新する
@Override
public void render(com.google.gwt.cell.client.Cell.Context context,
AppsBean value, SafeHtmlBuilder sb) {
String url=GWT.getModuleBaseURL()+"fetchIcon?appId="+value.getId()+"&requestType=icon";
sb.appendHtmlConstant("<Table>");
sb.appendHtmlConstant("<tr><td rowspan='3'>");
sb.appendHtmlConstant("<img src='"+url+"' style='width : 75px ;height: 75px;' />");
sb.appendHtmlConstant("</td><td>");
sb.appendEscaped(value.getAppName());
sb.appendHtmlConstant("</td></tr><tr><td>");
sb.appendEscaped(value.getAppLink());
sb.appendHtmlConstant("</td></tr><tr><td>");
sb.appendEscaped(value.getAppDesc());
sb.appendHtmlConstant("</td></tr>");
sb.appendHtmlConstant("</Table>");
}
サーブレットコード:
String appId = get(request, "appId");
String requestType = get(request, "requestType");
log.info("Your request for apps icon: " + appId + ", requestType: " + requestType);
if (requestType.equalsIgnoreCase("icon")) {
Apps icon = appsServiceImpl.getApp(Long.valueOf(appId));
log.info("We got apps for you: " + icon);
if(icon != null){
log.info("We got store logo for you: " + icon.getIcon());
response.getOutputStream().write(icon.getIcon());
}
}
私はブロブ内の画像を更新しています今私はCellListのセルに反映される同じたく
以下AbstractCellの拡張版です。セルの更新については、ListDataProviderのset()メソッドを使用しています。
set()メソッドを使用すると、CellのTextデータは完璧に更新されますが、イメージは更新されません。 urlも完全に生成されますが、セルがレンダリングされるとサーブレットの呼び出しを再度生成しません。
私はサーブレットの呼び出しを再度生成するように誰にもできますか?
ありがとう、私は同じことをしました。 – vbjain