Я создал ссылку со статическим текстом. Это хорошо работает, но теперь я также хочу изменить текст, когда Вы нажимаете на ссылку.
Я добрался до этого:
add(new Link("doAnything") {
@Override
public void onClick() {
// change the text!
// this.modelChanging();
// this.detach();
}
});
Я надеюсь, что можно дать мне некоторый легкий совет - я действительно плохо знаком с этим :)
Наилучшие пожелания Elias
HTML:
<html><head></head><body>
<wicket:panel>
<a href="" wicket:id="link">
<wicket:container wicket:id="label" />
</a>
</wicket:panel>
</body></html>
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")))
);
}
}
Я обычно использую wicket: container, чтобы не загрязнять HTML лишними элементами (калитка: контейнер не будет отображаться в производство)
нужно подкрепить текст в ссылке собственной моделью:
и в java:
add(new Link("doAnything").add(new Label("linktext", Model.of("i 'm the text"));
еще лучше, если вы используете (Compound)PropertyModel и имеете функцию getLinktext(), которая возвращает текст в зависимости от состояния.