#java #wicket
Вопрос:
На моем сайте у меня есть изображение:
add(new Image("logoImg", new DynamicImageResource() {
private static final long serialVersionUID = 1L;
@Override
protected byte[] getImageData(IResource.Attributes attributes) {
return tournamentDto.getLogo();
}
}));
как я могу получить сгенерированный URL-адрес этого изображения, чтобы использовать его в мета:
@Override
public void renderHead(IHeaderResponse response) {
response.render(forMetaTag("og:image", "??"));
super.renderHead(response);
}
public static final String META_TAG = "meta";
public static MetaDataHeaderItem forMetaTag(String name, String content) {
MetaDataHeaderItem headerItem = new MetaDataHeaderItem(META_TAG);
headerItem.addTagAttribute("property", Model.of(name));
headerItem.addTagAttribute("content", Model.of(content));
return headerItem;
}
Ответ №1:
@Override
public void renderHead(IHeaderResponse response) {
CharSequence imageUrl = urlFor(get("logoImg"));
response.render(forMetaTag("og:image", imageUrl));
super.renderHead(response);
}
// the Component must implement IRequestListener
private CharSequence urlFor(Component component) {
PageAndComponentProvider provider =
new PageAndComponentProvider(component.getPage(), component);
return urlFor(new ListenerRequestHandler(provider));
}