Wicket 1.6-如何动态修改主体“;“满负荷”;属性

Wicket 1.6-如何动态修改主体“;“满负荷”;属性,wicket,Wicket,如何在Wicket中动态修改Wicket 1.6页面的body onload标记 我想向“onload”属性添加一个JavaScript函数,该属性需要我在Java中生成的动态参数 提前感谢最好使用以下方法 在需要执行某些加载操作的任何组件中,添加以下方法: @Override public void renderHead(IHeaderResponse response) { super.renderHead(response); response.render(

如何在Wicket中动态修改Wicket 1.6页面的body onload标记

我想向“onload”属性添加一个JavaScript函数,该属性需要我在Java中生成的动态参数


提前感谢

最好使用以下方法

在需要执行某些加载操作的任何组件中,添加以下方法:

@Override
public void renderHead(IHeaderResponse response) {
    super.renderHead(response);
    response.render(
               OnDomReadyHeaderItem.forScript("alert('REPLACE ALERT BY YOUR SCRIPT')"));
}
如果需要使用额外参数等动态准备脚本,我建议如下:

private final static TextTemplate template 
     = new PackageTextTemplate(YourComponentOrPage.class, "your-js-template.js");
@Override
public void renderHead(IHeaderResponse response) {
    super.renderHead(response);
    Map<String, Object> params =new HashMap<String, Object>();
    params.put("parameter1", parameter1Value);
    params.put("parameter2", parameter2Value);
    response.render(OnDomReadyHeaderItem.forScript(template.asString(params)));
}

目前,Wicket 6.x有一个用于onLoad事件的特定类。不再需要任何黑客解决方案:

@Override
public void renderHead(IHeaderResponse response)
{
    super.renderHead(response);
    response.render(OnLoadHeaderItem.forScript(yourDynamicScript));
}

谢谢!成功了。我使用了一个add(新的WebComponent)并覆盖了renderHead。
@Override
public void renderHead(IHeaderResponse response)
{
    super.renderHead(response);
    response.render(OnLoadHeaderItem.forScript(yourDynamicScript));
}