The HTML:
<html><head></head><body>
<wicket:panel>
<a href="" wicket:id="link">
<wicket:container wicket:id="label" />
</a>
</wicket:panel>
</body></html>
The java:
public class MyPanel extends Panel{
private static class Mybean{
String labelText = "click me";
public String getLabelText(){
return this.labelText;
}
public void setLabelText(final String labelText){
this.labelText = labelText;
}
}
public MyPanel(final String id){
super(id);
final Mybean bean = new Mybean();
this.add(new Link<Void>("link"){
private static final long serialVersionUID = 1L;
@Override
public void onClick(){
bean.setLabelText("Thanks for clicking");
}
}.add(new Label("label", new PropertyModel<String>(bean, "labelText")))
);
}
}
I tend to use wicket:container in order to not pollute the HTML with superfluous elements (the wicket:container won't be rendered in production)