Как получить URL-адрес изображения калитки, чтобы использовать его в мета-тегах open graph

#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));
}