Wicket 1.3 and earlier
To add _javascript_ or CSS to your pages and have them compressed during the "deployment" cycle automatically by Wicket, start with the _javascript_ or CSS file somewhere in our package hierarchy that we can reference in our Page. For simplicity, we can copy it right next to the HTML file like so:
MyPage.java
MyPage.html
MyPage.js
MyPage.css
Then in our Page, we need to reference these items based on the path of our Java file, like so:
private static final CompressedResourceReference MYPAGE_JS = new CompressedResourceReference(MyPage.class, "MyPage.js");
private static final CompressedResourceReference MYPAGE_CSS = new CompressedResourceReference(MyPage.class, "MyPage.css");
This code gives us a ResourceReference that we can add to our page, most use cases to the HTML head element block. To do that in your page:
add(HeaderContributor.forJavaScript( MYPAGE_JS ));
add(HeaderContributor.forCss( MYPAGE_CSS ));
Wicket 1.4
In Wicket 1.4 HeaderContributor.forJavaScript() and HeaderContributor.forCss() are deprecated, so use the code below:
add(_javascript_PackageResource.getHeaderContribution(MYPAGE_JS));
add(CSSPackageResource.getHeaderContribution(MYPAGE_CSS));
Or
public class MyPage extends WebPage {
...
@Override
public void renderHead(HtmlHeaderContainer container) {
container.getHeaderResponse().renderOnLoadJavascript("alert('test')");
super.renderHead(container);
}
}
Wicket 1.5
In Wicket 1.5, CompressedResourceReference has been removed!
Also, the getHeaderContribution functionality has been removed. Instead, your component (Page, Panel, etc.) needs to override renderHead(IHeaderResponse):
@Override
public void renderHead(IHeaderResponse response) {
response.renderJavaScriptReference("urlHere");
}
Wicket 6.x
renderJavaScriptReference seems to be gone.
...
private static final _javascript_ResourceReference MYPAGE_JS = new _javascript_ResourceReference(MyPage.class, "MyPage.js");
...
@Override
public void renderHead(IHeaderResponse response) {
response.render(_javascript_ReferenceHeaderItem.forReference(MYPAGE_JS));
}
...