Автозаполнение не отправляет правильное значение конвертера, если ввести вручную - PullRequest
0 голосов
/ 10 мая 2011

Вот несколько моментов:

  1. У меня есть пример автозаполнения простых лиц, в котором используется POJO с пользовательским конвертером.
  2. Я возвращаю строку UUID для getAsString в конвертере.
  3. Строковое значение из конвертера отправляется нормально, если я выбираю значение в раскрывающемся диалоговом окне автозаполнения, с помощью клавиатуры или щелчка мыши.
  4. Но когда я сам набираю значение, не выбирая его в раскрывающемся диалоговом окне автозаполнения, или просто вставляя значение в текстовое поле, Ошибка проверки: Требуется значение . ошибка случится.
  5. Я замечаю, что эта ошибка возникает из-за того, что значение, отправляемое на серверную часть, является не строкой, сгенерированной моим конвертером, а введенным значением.

Использование 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


1 Ответ

0 голосов
/ 12 мая 2011

Вы бы опубликовали свой .xhtml, мне нужно проверить

Пожалуйста, проверьте:

  1. Вы добавилиатрибут forceSelection
  2. Когда пользователь выбирает в списке предложений, данных autoComplete, он должен использовать selectListener и обновлять частичное представление с помощью onSelectUpdate

  3. , если естьвнутри, попробуйте удалить его

...