f: convertNumber с шаблоном атрибута - PullRequest
0 голосов
/ 14 марта 2012

Я пытаюсь использовать следующий код

<h:inputText id="amount" value="#{bean.amount}">
    <f:convertNumber pattern="##0.00" />
</h:inputText>

Я ожидаю, что это даст ошибку, для чисел с 4-значными интегралами.Но он с радостью принимает такие числа, и НЕ дает ошибку преобразования.

Есть идеи, почему?

1 Ответ

2 голосов
/ 14 марта 2012

Возможно, вы смешиваете валидацию с конверсией. Цель конвертера - описать, как отображаются числа, и обычно выдается ошибка преобразования, если пользователь ввел неправильный тип данных.

Вы можете использовать, например:

<h:inputText id="amount" value="#{bean.amount}">
    <f:convertNumber pattern="##0.00" maxIntegerDigits="4"/>
</h:inputText>

, но это не выдает ошибку конвертации, если вы введете 4444. Конвертер преобразует ее в "444.00". Но в вашем резервном бине значение будет правильно храниться как 4444.

Вам нужен валидатор:

<h:inputText value="#{controllerBean.number}" >
    <f:convertNumber pattern="##0.00" maxIntegerDigits="3"/>
    <f:validateDoubleRange maximum="1000"/>
</h:inputText>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...