我在.java文件中创建了一个新的AjaxLink
add(new AjaxLink("link"){
private static final long serialVersionUID = 1L;
@Override
public void onClick(AjaxRequestTarget target) {
target.appendJavascript("window.open('http://www.cnn.com/2011/WORLD/africa/02/23/libya.protests/index.html?hpt="+T1+"')");
}
});
并将其添加到我的.html文件
<a href="#" wicket:id="link">TEXT TO REPLACE</a>
网址只是一个示例,但T1是动态的,我从我的.java文件中获取。我希望“TEXT TO REPLACE”等于T1字符串,但我不知道该怎么做。我尝试过创建一个Label并像
一样添加它<a href="#" wicket:id="link"><span wicket:id="linkLbl"></span></a>
但这会产生错误。
有什么建议吗?
由于
答案 0 :(得分:1)
Label
是正确的方向,但你必须确保在java代码中添加标签,它应该是你的ajax链接的子组件。
(旁注:您可能需要考虑使用<wicket:container>
代替<span>
。在这种情况下,它并不重要,但有些情况下需要额外的<span>
代码会使你的HTML无效。)
答案 1 :(得分:0)
a)对链接和标签使用通用模型,b)不要忘记更新链接
IModel<String> model = // get model data from somewhere
add(new AjaxLink("link"){
private static final long serialVersionUID = 1L;
@Override
public void onClick(AjaxRequestTarget target) {
target.addComponent(this); // update the link component
target.appendJavascript("window.open('http://www.cnn.com/2011/WORLD/africa/02/23"
+ "/libya.protests/index.html?hpt="+model.getObject()
/* you probably want to encode this first */+"')");
}
}).setOutputMarkupId().add(new Label("label",model));