Играла с этим пару часов и, похоже, не могла окунуться в нее.Калитка: Избегайте назначения модели ListChoice модели формы
В Wicket список выбора принимает список моделей, которые будут представлять собой выбор, который составляет список. Когда отправляется форма, в которую добавлен список выбора, Wicket связывает модель выбранного выбора с моделью Формы.
Но что, если я не хочу, чтобы вся модель привязалась и вместо этого была специфическим свойством?
Например:
public class FormModel {
private int locationId;
public void setLocationId(int id) {
this.locationId = id;
}
}
public class LocationModel {
private int id;
public int getId() {
return this.id;
}
}
<select wicket:id="LocationId" id="LocationId" name="LocationId" size="1">
<option value="#">#</option>
</select>
Когда форма отправлена, калитка будет пытаться связать весь LocationModel к FormModel, где ясно я просто хочу, чтобы связать это locationId недвижимости.
Я уже пользуюсь ChoiceRenderer, но, похоже, работает только тогда, когда форма отображается не тогда, когда она отправлена.
Результатом является исключительное исключение класса, поскольку Wicket не сможет преобразовать LocationModel в целое число.
Мне бы очень хотелось создать другую модель специально для формы, чтобы принять LocationModel.
Любые мысли?
Просто, чтобы убедиться, что я правильно понял; Вы говорите, что для выбора списка выбрали список целых чисел и внутри моего IChoiceRenderer, потяните соответствующее местоположение, представленное каждым идентификатором, когда оно отображается? – 9ee1
Действительно. См. Мое редактирование для альтернативы, если вытаскивание описаний дорого. –
Ваш пример отлично работал. Спасибо за подробный ответ. – 9ee1