Я могу сгенерировать список строк, используемых для выбора элемента с помощью AutoCompleteTextField, но он помещает всю строку в элемент управления редактирования. Я бы хотел, чтобы он просто ввел строку «name».Как получить AutoCompleteTextField для принятия подстроки
Должен ли я создать модель, содержащую строку имени и визуализированную строку?
Какие функции следует переопределить для получения требуемой строки, чтобы получить значение или обработать клик?
private Model<String> groupToJoinModel = new Model<String>();
final AutoCompleteTextField<String> field = new AutoCompleteTextField<String>("ac", new Model<String>(""))
{
\t private static final long serialVersionUID = 1L;
\t @Override
\t protected Iterator<String> getChoices(String input)
\t {
\t \t List<String> choices = new ArrayList<String>(5);
\t \t // from a database: generate lookup items
\t \t // by concatenating strings: name, type, description
\t \t // code omitted
\t \t return choices.iterator();
\t }
};
form.add(field);
groupToJoinModel = (Model<String>) field.getDefaultModel();
// Create a button to perform an action
Button joinGroupsButton = new Button("joinGroupButton")
{
\t private static final long serialVersionUID = -4974389888115885756L;
\t
\t @Override
\t public void onSubmit()
\t {
\t \t if (groupToJoinModel.getObject() != null)
\t \t { \t
\t \t \t // An action is performed on the contents of the edit control
\t \t }
\t }
};
form.add(joinGroupsButton); \t
Спасибо, я исследую это, если он снова появится. Проблема возникла, когда запятая была включена в поле имени. Я решил снова сравнить поле имени каждого элемента в повторенном списке возвращаемого значения. Это позволило мне получить правильное имя. – JoeAB