将Wicket值插入Java中的JavaScript函数

Yo *_* Al 2 html javascript java wicket

我正在使用HTML和Wicket编写Web应用程序.

在我的HTML页面中,我有一个小的警报脚本,我需要wicket将一个值插入警报的消息.我的代码是:

HTML代码:

<script>
   function version(){
   alert(<sub wicket:id="version">);
   } 
</script>
<img class="logo" src="images/logo.png" alt="" width="68" height="21" onclick="version()"/>
Run Code Online (Sandbox Code Playgroud)

Java的:

add(new Label("version","1.0.0");
Run Code Online (Sandbox Code Playgroud)

但这不起作用.

Chr*_*ter 5

Wicket不会处理任何内容<script>.但是您可以通过页面类(或任何其他Component)中的标题贡献添加JavaScript函数.

Wicket 1.5:

@Override
public void renderHead(IHeaderResponse response) {
    super.renderHead(response);
    response.renderJavaScript("function version(){alert('" + "1.0.0" + "');}", "version");
}
Run Code Online (Sandbox Code Playgroud)

Wicket 6.0:

@Override
public void renderHead(IHeaderResponse response) {
    super.renderHead(response);
    response.render(JavaScriptHeaderItem.forScript("function version(){alert('" + "1.0.0" + "');}", "version"));
}
Run Code Online (Sandbox Code Playgroud)

另一种方法是渲染一个Label输出函数:

add(new Label("script", "function version(){alert('1.0.0');}").setEscapeModelStrings(false));
Run Code Online (Sandbox Code Playgroud)

并在你的标记

<script wicket:id="script" />
<img class="logo" src="images/logo.png" alt="" width="68" height="21" onclick="version()"/>
Run Code Online (Sandbox Code Playgroud)