Вот несколько моментов:
- У меня есть пример автозаполнения простых лиц, в котором используется POJO с пользовательским конвертером.
- Я возвращаю строку UUID для getAsString в конвертере.
- Строковое значение из конвертера отправляется нормально, если я выбираю значение в раскрывающемся диалоговом окне автозаполнения, с помощью клавиатуры или щелчка мыши.
- Но когда я сам набираю значение, не выбирая его в раскрывающемся диалоговом окне автозаполнения, или просто вставляя значение в текстовое поле, Ошибка проверки: Требуется значение . ошибка случится.
- Я замечаю, что эта ошибка возникает из-за того, что значение, отправляемое на серверную часть, является не строкой, сгенерированной моим конвертером, а введенным значением.
Использование firebug показывает это в действии.
Это когда я выбираю значение в раскрывающемся диалоговом окне автозаполнения с помощью клавиатуры или щелчка мышью, мы можем заметить, что значение находится в формате UUID, который возвращается моим преобразователем pojo:
<input aria-haspopup="true" aria-autocomplete="list" role="textbox"
autocomplete="off" id="DetailDialogForm:Bagian_input"
name="DetailDialogForm:Bagian_input" value="PERSO"
class="ui-inputfield ui-widget ui-state-default ui-corner-all ui-autocomplete-input"
type="text">
<input id="DetailDialogForm:Bagian_hinput"
name="DetailDialogForm:Bagian_hinput"
value="b0019ab2-28c3-451a-90f6-62a6941ffcaa" type="hidden">
Это когда я набирал или вставлял значение, мы можем заметить, что значение - это именно то, что я набрал, что НЕ возвращается моим преобразователем pojo:
<input aria-haspopup="true" aria-autocomplete="list"
role="textbox" autocomplete="off" id="DetailDialogForm:Bagian_input"
name="DetailDialogForm:Bagian_input" value="PERSO"
class="ui-inputfield ui-widget ui-state-default ui-corner-all ui-autocomplete-input"
type="text">
<input id="DetailDialogForm:Bagian_hinput"
name="DetailDialogForm:Bagian_hinput" value="PERSO" type="hidden">
Это предполагаемое поведение этого элемента?
Я использую Tomcat 7, и это мои зависимости:
<dependency>
<groupId>org.primefaces</groupId>
<artifactId>primefaces</artifactId>
<version>2.2.1</version>
</dependency>
<dependency>
<groupId>com.sun.faces</groupId>
<artifactId>jsf-api</artifactId>
<version>2.0.4-b09</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.sun.faces</groupId>
<artifactId>jsf-impl</artifactId>
<version>2.0.4-b09</version>
<scope>compile</scope>
</dependency>
Пожалуйста, поделитесь своими мыслями, спасибо!
UPDATE
Это выдержка из JSF:
<p:autoComplete id="Bagian" label="Bagian yang di limpahkan"
value="#{tInputBean.activeDetail.map['department']}"
completeMethod="#{tInputBean.filterDepartment}" var="department"
itemLabel="#{department.map['departmentName']}"
itemValue="#{department}" converter="genericConverter"
forceSelection="true" required="true" />
А конвертер доступен на этой странице , в ответе BalusC на EntityConverter