Java 每次在Wicket中单击按钮时更改按钮文本

Java 每次在Wicket中单击按钮时更改按钮文本,java,wicket,Java,Wicket,我有按钮作为AjaxLink和标签在里面。我想实现切换按钮,在每次点击时更改文本。假设按钮有初始文本“One”,点击后应该是“Two”,再次点击后应该是“One”,依此类推 AjaxLink myBtn=新的AjaxLink(“myBtn”){ @凌驾 公共void onClick(AjaxRequestTarget目标){ someModel.toggle(); } }; Label btnText=新标签(“btnText”,someModel.map(on->on?“One”:“Two

我有按钮作为AjaxLink和标签在里面。我想实现切换按钮,在每次点击时更改文本。假设按钮有初始文本“One”,点击后应该是“Two”,再次点击后应该是“One”,依此类推


AjaxLink myBtn=新的AjaxLink(“myBtn”){
@凌驾
公共void onClick(AjaxRequestTarget目标){
someModel.toggle();
}
};
Label btnText=新标签(“btnText”,someModel.map(on->on?“One”:“Two”);
btnText.setOutputMarkupId(true);
btnText.setOutputMarkupPlaceholderTag(true);
myBtn.add(btnText);
添加(myBtn);

我的标签在单击后不会重新渲染,如何执行?

您需要在
onClick()中添加(btnText)

final Label btnText=new Label(“btnText”,someModel.map(on->on?“One”:“Two”);
btnText.setOutputMarkupId(true);
AjaxLink myBtn=新的AjaxLink(“myBtn”){
@凌驾
公共void onClick(AjaxRequestTarget目标){
someModel.toggle();
target.add(btnText);
}
};
myBtn.add(btnText);
添加(myBtn);

谢谢!它起作用了
final Label btnText = new Label("btnText", someModel.map(on -> on ? "One" : "Two"));
btnText.setOutputMarkupId(true);    
AjaxLink<Void> myBtn = new AjaxLink<>("myBtn") {
   @Override
   public void onClick(AjaxRequestTarget target) {
     someModel.toggle();
     target.add(btnText);
   }
};
myBtn.add(btnText);
add(myBtn);