gpt4 book ai didi

java - StringResourceModel 仅适用于标签

转载 作者:行者123 更新时间:2023-12-02 05:35:46 25 4
gpt4 key购买 nike

我试图创建一个带有用户名的链接(即动态数据),但无法让 StringResourceModelLink 一起使用。
我的代码看起来像这样:

属性:

some.key=User name is: {0}

Java:

StringResourceModel model = 
new StringResourceModel("some.key", this, null, new Object[] { getUserName() });
add(new Link("someid", model) {
@Override
public void onClick() {
// do something ...
}
});

HTML:

<a wicket:id="someid">some text to replace</a>

但是,这不起作用,即文本从未被替换。

我尝试了不同的方向,它确实有效,看起来像这样:

Java:

StringResourceModel model = 
new StringResourceModel("some.key", this, null, new Object[] { getUserName() });
Link link;
add(link = new Link("someid") {
@Override
public void onClick() {
// do something ...
}
});

link.add(new LabeL("anotherid", model));

HTML:

<a wicket:id="someid"><span wicket:id="anotherid">some text to replace</span></a>

(属性文件相同)。

我的问题是,我是否正确地假设 StringResourceModel 不能与 Link 一起使用(我称这是一个假设,因为我没有看到任何关于这在 JavaDOC 中)?
如果没有,StringResourceModel 如何直接与 Link 一起使用,而不需要中介 Label

最佳答案

Link 构造函数中的 model 参数并不打算用作显示值。要设置链接的文本,您需要向其显式添加 Label:

Link<Void> link = new Link<Void>("link");
link.add(new Label("label", model);
add(link);

在 HTML 中:

<a wicket:id="link"><span wicket:id="label"></span></a>

构造函数中的模型旨在在 onclick 方法(或类似方法)中使用。例如(来自 JavaDoc):

IModel<MyObject> model = ...;
Link<MyObject> link = new Link<MyObject>("link", model) {
public void onClick() {
MyObject obj = getModelObject();
setResponsePage(new MyPage(obj));
}
};
add(link);

关于java - StringResourceModel 仅适用于标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24989155/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com