Стандартные преобразователи JSF - PullRequest
2 голосов
/ 04 января 2012

У меня есть вопрос, касающийся преобразования JSF. У меня есть входной текст определить так:

<p:inputText size="15" maxlength="11" value="#{user.SSN}"/>

бобовое зерно:

private Integer SSN;

С этого сайта: http://laliluna.com/articles/posts/javaserver-faces-converter-tutorial.html

Я понимаю, что JSF имеет встроенные конвертеры для целых чисел.

"Если вы не укажете конвертер, JSF выберет его для вас. Фреймворк имеет стандартные конвертеры для всех основных типов: Long, Byte, Integer, Short, Character, Double, Float, BigDecimal, BigInteger и Boolean. Например, если ваш компонент связан со свойством типа boolean, JSF выберет логический преобразователь. Типы примитивов автоматически преобразуются в аналогичные объекты. "

однако, когда я выполняю вышеуказанный код, я получаю эту ошибку:

j_idt78: '99999999999' must be a number consisting of one or more digits.

Что не так с моим пониманием этой концепции? Почему в этом случае JSF не использует свои стандартные конвертеры?

1 Ответ

4 голосов
/ 04 января 2012

Не совсем уверен, но я уверен, что число 99999999999 слишком велико, чтобы его можно было хранить как целое число, поэтому вместо этого оно по умолчанию обрабатывает его как строку.Long или BigInteger тогда, вероятно, будет работать правильно.При желании вы можете явно указать преобразователь чисел для этого поля напрямую, добавив следующий тег Facelets внутри тега Primefaces <f:convertNumber>

http://docs.oracle.com/javaee/5/javaserverfaces/1.2/docs/tlddocs/f/convertNumber.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...