gpt4 book ai didi

wicket - Wicket 模型如何与泛型一起使用?

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

我想了解一些关于 wicket 支持泛型模型的信息。我了解了模型、 Prop 模型和 Prop 复合模型。

但是 Model 类呢?如果我这样做会发生什么:

Label<Person> label = new Label<Person> ( "someID", new Model<Person>() )

该标签中将显示什么? toString 输出?

假设我在 TextField 中有相同的内容。它将在该对象中设置什么值?

最佳答案

Wicket 的源代码有很好的文档记录并且不言自明。 Label正在使用 getDefaultModelObjectAsString()来自Component看起来像这样:

// Get converter
final Class<?> objectClass = modelObject.getClass();

final IConverter converter = getConverter(objectClass);

// Model string from property
final String modelString = converter.convertToString(modelObject, getLocale());

所以在这里您可以看到 Wicket 使用 IConverter将模型对象转换为 String 。查看默认ConverterLocator的执行情况如果您还没有注册任何IConverter,您会看到对于这种类型的对象,Wicket 将使用 DefaultConverter使用 org.apache.wicket.util.lang.Objects将对象转换为 String 的静态方法。

TextField还使用IConverter将对象转换为 String以及来自String又到一个物体。不同之处在于 Wicket 始终能够将未知类转换为 String使用toString方法,但不是其他方法。所以如果你想使用IModel<Person>TextField您需要注册自己的 IConverter<Person>执行。

关于wicket - Wicket 模型如何与泛型一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10116921/

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