Java 在Wicket中更改提交按钮的文本字段
我的面板中有一个简单的按钮,定义如下:Java 在Wicket中更改提交按钮的文本字段,java,wicket,Java,Wicket,我的面板中有一个简单的按钮,定义如下: item.add(new Button("favButton") { public void onSubmit() { User.getCurrentUser().fav(book); } }); 该按钮在html文件中的外观如下所示: <td><button type="submit" class="btn btn-
item.add(new Button("favButton") {
public void onSubmit() {
User.getCurrentUser().fav(book);
}
});
该按钮在html文件中的外观如下所示:
<td><button type="submit" class="btn btn-default" wicket:id = "favButton">Add to my favourites</button></td>
添加到我的收藏夹
因此,默认情况下,其文本为:
添加到我的最爱
我希望它在单击后更改为以下内容:
从我的最爱中删除
如果在这种状态下单击,则返回到上一个(添加到我的收藏夹)
我已经将按钮的状态保存在一个变量中,因此,如何更改按钮的标签
根据这个变量
编辑:
根据svenmier的建议,将其更改为以下内容:
Panel.java
.....
IModel<String> textModel = new AbstractReadOnlyModel<String>() {
public String getObject() {
return added ? getString("removeFav") : getString("addFav");
}
};
final Form<?> buttonForm = new Form<Object>("buttonForm");
buttonForm.add(new AjaxButton("favButton", textModel) {
@Override
protected void onSubmit(AjaxRequestTarget target,
Form<?> form) {
super.onSubmit(target, buttonForm);
target.add(this);
}
});
buttonForm.add(new AjaxButton("readButton", textModel) {
@Override
protected void onSubmit(AjaxRequestTarget target,
Form<?> form) {
super.onSubmit(target, buttonForm);
target.add(this);
}
});
item.add(buttonForm);
....
。。。。。
IModel textModel=new AbstractReadOnlyModel(){
公共字符串getObject(){
返回已添加?getString(“removeFav”):getString(“addFav”);
}
};
最终表单buttonForm=新表单(“buttonForm”);
添加(新的AjaxButton(“favButton”,textModel){
@凌驾
提交时受保护的无效(AjaxRequestTarget目标,
表格({
super.onSubmit(target,buttonForm);
目标。添加(此);
}
});
添加(新的AjaxButton(“readButton”,textModel){
@凌驾
提交时受保护的无效(AjaxRequestTarget目标,
表格({
super.onSubmit(target,buttonForm);
目标。添加(此);
}
});
添加项(buttonForm);
....
Panel.html
<form action="" wicket:id="buttonForm">
<td><input wicket:id="favButton" type = "submit"/></td>
<td><input wicket:id="readButton" type = "submit" /></td>
</form>
但仍然不起作用。最简单的解决方案是:
- 改用
- 给按钮一个模型
IModel<String> textModel = new AbstractReadOnlyModel<String>() {
public String getObject() {
return added ? getString("removeFav") : getString("addFav");
}
};
new Button("favButton", textModel) { };
IModel textModel=new AbstractReadOnlyModel(){
公共字符串getObject(){
返回已添加?getString(“removeFav”):getString(“addFav”);
}
};
新按钮(“favButton”,textModel){};
似乎没有任何效果。html文件应该是什么样的?也许我做错了。