Есть ли конвертер для String? - PullRequest
1 голос
/ 06 мая 2011

Для преобразования значений String при проверке bean-компонентов JSF, какой преобразователь будет использоваться?Как и для числовых значений, мы используем <f:convertNumber>, а для даты мы используем <f:convertDataTime>.Мой фрагмент кода выглядит так: Страница JSF:

<h:inputText id="Name" label="Name" value="#{employee.eName}"/>
<h:message for="Name" styleClass="errorMessages"/> 

Класс EJB:

public class Employee implements Serializable{
    @NotNull @Size(min = 3, max = 30)
    String eName;
}

1 Ответ

3 голосов
/ 06 мая 2011

String не имеет конвертера по умолчанию.Параметры запроса String уже.

Если вы собираетесь подключить пользовательский конвертер к String, используйте

@FacesConverter(forClass=String.class)
public class StringConverter implements Converter {

    // ...

}

Единственный вариант использования, который я видел для этого, - это установитьих значение равно null вместо пустой строки, но этого также можно добиться, установив следующий контекстный параметр в web.xml.

<context-param>
    <param-name>javax.faces.INTERPRET_EMPTY_STRING_SUBMITTED_VALUES_AS_NULL</param-name>
    <param-value>true</param-value>
</context-param>

Таким образом, аннотация @NotNull будет срабатывать при отправкепустой строки.В противном случае вам придется использовать специфичный для Hibernate @NotBlank.

См. Также

...