Java 何时可以在Wicket Ajax选项卡面板中使用getString()?
Wicket 7.3和JQuery 2.1.4有以下问题: 在动态选项卡式面板(添加和删除选项卡)中,我希望本地化选项卡标题并添加工具提示。我的代码Java 何时可以在Wicket Ajax选项卡面板中使用getString()?,java,jquery,ajax,wicket,Java,Jquery,Ajax,Wicket,Wicket 7.3和JQuery 2.1.4有以下问题: 在动态选项卡式面板(添加和删除选项卡)中,我希望本地化选项卡标题并添加工具提示。我的代码 JQueryGenericPanel() { .... populateItem( ListItem<ITab> item) { getString(); 不行,因为太晚了。标签已设置为“懒惰” 有没有其他类似于“populateItem()”的方法可以使用 **附录** 选项卡式面板的代码为: public class
JQueryGenericPanel() {
....
populateItem( ListItem<ITab> item) {
getString();
不行,因为太晚了。标签已设置为“懒惰”
有没有其他类似于“populateItem()”的方法可以使用
**附录**
选项卡式面板的代码为:
public class MyTabbedPanel extends JQueryGenericPanel<List<ITab>> implements ITabsListener {
...
@Override
protected void onInitialize() {
super.onInitialize();
this.add( new ListView<ITab>( "tabs", this.getModel() ) {
...
@Override
protected void populateItem( ListItem<ITab> item ) {
Label link = new Label( "widgetId", new PropertyModel<String>( somePanel, "getTitle()" ) );
private String title = "default";
public String getTitle() { return title; }
@Override
public void onInitialize() {
title = getString( "someKey" );
}
因此PropertyModel使用“getTitle()”获取标题。不幸的是,这发生在调用“onInitialize()”之前。因此,选项卡标题显示“default”,而不是“someKey”的本地化文本。而不是
new Label(itemId, getString("key"))
。。。使用:
new Label(itemId, new ResourceModel("key"));
。。。或者,如果你用绳子做了一些有趣的事情:
new Label(itemId, new AbstractReadOnlyModel<String>() {
public String getObject() {
return ... + getString("key") + ...;
}
});
new标签(itemId,new AbstractReadOnlyModel(){
公共字符串getObject(){
返回…+getString(“键”)+。。。;
}
});
而不是
new Label(itemId, getString("key"))
。。。使用:
new Label(itemId, new ResourceModel("key"));
。。。或者,如果你用绳子做了一些有趣的事情:
new Label(itemId, new AbstractReadOnlyModel<String>() {
public String getObject() {
return ... + getString("key") + ...;
}
});
new标签(itemId,new AbstractReadOnlyModel(){
公共字符串getObject(){
返回…+getString(“键”)+。。。;
}
});
我已经在使用'Label link=new Label(“widgetId”,new PropertyModel(panelObject,“getTitle()”);'但问题依然存在。使用“getString()”设置标题只能在“onInitialize()”中使用,但PropertyModel已访问上一个标题。不幸的是,您的答案没有解决问题。问题是您的面板尚未添加到组件层次结构(因此未调用#onInitialized())。您是否尝试从getTitle()内部调用getString()?尚未,因为它经常被调用,我想通过在panel对象中存储本地化文本来优化它。我将试一试。我已经在使用'Label link=new Label('widgetId',new PropertyModel(panelObject,'getTitle()');'但问题依然存在。使用“getString()”设置标题只能在“onInitialize()”中使用,但PropertyModel已访问上一个标题。不幸的是,您的答案没有解决问题。问题是您的面板尚未添加到组件层次结构(因此未调用#onInitialized())。您是否尝试从getTitle()内部调用getString()?尚未,因为它经常被调用,我想通过在panel对象中存储本地化文本来优化它。我将尝试一下。新的PropertyModel(somePanel,“getTitle()”)
看起来很奇怪。使用newpropertymodel(somePanel,“title”)
。newpropertymodel(somePanel,“getTitle()”)
看起来很奇怪。改用newpropertyModel(somePanel,“title”)
。