我可以在 Wicket 中将变量插值与 StringResourceModels 混合使用吗?

Can I mix variable interpolation with StringResourceModels in Wicket?

我想添加一个显示如下消息的标签:
privateFieldOfModel (interpolatedVariable: privateFieldOfModel).
例如:John Doe (Has id: 63412313), John Doe (Hat Id: 63412313)

我的 属性 文件如下所示:

languageDependentCode=CodeInSelectedLanguage //property is different for every lang
labelInfo=${name} (${languageDependentCode}: ${id})

我的Java:

div.add(new Label("infoLabel", new StringResourceModel("labelInfo",
        new Model<>(myModel))));

我的模型看起来像这样:

public class MyModel{
    private String id, name;
    //getters for both
}

运行 然而它会抛出这个异常:

org.apache.wicket.WicketRuntimeException: 
No get method defined for class: class MyModel expression: languageDependentCode

我能以某种方式理解。有没有一种方法可以将 languageDependentCode 插入到此 属性 中,而不用 wicket 认为它一定来自 MyModel
注:
MessageFormat.format() 不符合我的目的,因为它不会在语言更改时取代 ${languageDependentCode}

您需要使用 NestedStringResourceLoader(自 7.4.0/8.0.0-M1 起可用,参见 https://issues.apache.org/jira/browse/WICKET-6193)。

查看带有 tests/examples 的提交:https://git-wip-us.apache.org/repos/asf?p=wicket.git;h=2b12b89