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、はaを使用しIConverterて、オブジェクトをaに変換し、StringからStringオブジェクトに再度変換します。String違いは、Wicketはメソッドを使用して未知のクラスを常にに変換できることですがtoString、その逆はできません。したがって、でを使用するIModel<Person>場合は、独自の実装TextFieldを登録する必要があります。IConverter<Person>