如何将一个favicon作为包资源添加到Wicket 8的标题部分?

时间:2017-04-18 13:18:15

标签: wicket favicon

Wicket 8 中标题部分的资源添加方式在Adding resources to page header section一章的参考指南中有所描述。

在我的应用程序中,我以下列方式将CSS和JavaScript添加为包资源

public class BasePage extends WebPage {

    @Override
    public void renderHead(IHeaderResponse response) {
        super.renderHead(response);

        ResourceReference regisCssRef =
                new PackageResourceReference(getClass(), "static/css/regis.css");
        response.render(CssHeaderItem.forReference(regisCssRef));

        ResourceReference jqueryJSRef =
                new PackageResourceReference(getClass(), "static/js/jquery.min.js");
        response.render(JavaScriptHeaderItem.forReference(jqueryJSRef));
    }
}

我的问题是:如何以类似的方式添加 favicon.ico 资源?因此,作为使用PackageResourceReference类创建的资源

2 个答案:

答案 0 :(得分:2)

<meta>类用于<link>ResourceReference元素。不幸的是,它不支持包资源,事实上,任何forReference() - 它都错过了方法ResourceReference faviconRef = new PackageResourceReference( getClass(), "static/images/favicon.ico"); response.render( MetaDataHeaderItem.forLinkTag("shortcut icon", urlFor(faviconRef, null).toString()));

我能够通过以下代码解决我的问题,但不确定这是一个不错的解决方案:

//As long as there is some remainder
while($counter % 3) {
    //add desired content
    switch($counter++ % 3) {
        case 1: break;
        case 2: break;
    }
}

答案 1 :(得分:0)

您可以使用MetaDataHeaderItem类:

response.render(MetaDataHeaderItem.forLinkTag("icon", "static/fav.ico"));