Hi, Please help me with following issue:
I'm using wicket 7. I have a form with a AutocompleteTextField. The autocompletion works ok until I need to submit the form, when I get following message: - The value of 'test' is not a valid TestBean. Here is my component: IAutoCompleteRenderer<TestBean> testRenderer = new IAutoCompleteRenderer<TestBean>() { private static final long serialVersionUID = -7038764178796856779L; @Override public void render(TestBean object, Response response, String criteria) { response.write((new StringBuilder()).append("<li idvalue=\"").append(object.getCod).append("\" textvalue=\"").append(object.getUniqueName()).append("\">").toString()); response.write(object.getUniqueName()); response.write("</li>"); } @Override public void renderFooter(Response response, int ItemId) { response.write("</ul>"); } @Override public void renderHeader(Response response) { response.write("<ul>"); } }; AutoCompleteTextField<TestBean> txt = new AutoCompleteTextField<TestBean>("test", new PropertyModel<TestBean>(this, "myTestBean"), TestBean.class, testRenderer, (new AutoCompleteSettings().setPreselect(true))) { private static final long serialVersionUID = 1L; private List<TestBean> TestList = null; @Override protected Iterator<TestBean> getChoices(String input) { if (Strings.isEmpty(input)) { return Collections.emptyIterator(); } else { if (input.length() > 0) { if (TestList == null || TestList.isEmpty() || !input.substring(0, 1).toUpperCase().equals(TestList.get(0).getUniqueName().substring(0, 1).toUpperCase())) { TestList = SpringCtx.getAppDB(TestBeanDao.class).selectAproxByUniqueName(input.substring(0, 1)); } } } int autoCompleteFieldNumChoices = 20; List<TestBean> choices = new ArrayList<TestBean>(autoCompleteFieldNumChoices); for (int i = 0; i < TestList.size(); i++) { final TestBean testBean = TestList.get(i); final String testName = testBean.getUniqueName(); if (testName.toUpperCase().startsWith(input.toUpperCase())) { choices.add(testBean); if (choices.size() == autoCompleteFieldNumChoices) { break; } } } return choices.iterator(); } };