Ответ 1
Вы можете использовать f:convertNumber
(используйте атрибут integerOnly
).
Вы можете получить дополнительную информацию здесь.
Есть ли встроенный тег проверки валидации в JSF, который проверяет, является ли ввод введенным в поле h:inputext
числом?
Был задан первый вопрос. Отредактировано для объяснения следующей проблемы:
<h:inputText id="maxrecs" value="#{simpleBean.numRecords}" required="false" maxlength="4" >
<f:convertNumber longOnly="true"/>
</h:inputText>
Поддержка Bean
private long numRecords = null;
Если я использую объект String или Integer в резервной копии bean, значение не устанавливается. Теперь, когда я использую примитивный int, на экране печатается 0. Я хочу, чтобы экран был пустым.
Вы можете использовать f:convertNumber
(используйте атрибут integerOnly
).
Вы можете получить дополнительную информацию здесь.
Вы можете использовать:
<f:validateLongRange minimum="20" maximum="1000" />
Где минимально минимальное допустимое число, а максимальное - самое большое. Посмотрите более подробную информацию
Проверка номера JSF для входного текста укажите компонент f: converterNumber между компонентом h inputText и укажите атрибуты integerOnly и введите.
<h:inputText id="textMobileId" label="Mobile" styleClass="controlfont" value="#{UserRegistrationBean.textMobile}">
<f:convertNumber integerOnly="true" type="number" />
</h:inputText>
Если вы введете abcd в текстовое поле Mobile в то время, когда вы нажимаете кнопку Commandbutton, он автоматически показывает ошибку, например
Mobile: 'abcd' is not a number.
Решение i8taken преобразует число в long без сообщения проверки (по крайней мере, в моем случае: JSF2/глобальные сообщения на странице). Для правильного подтверждения сообщения вы можете
1. проверить значение в методе действия в bean;
или
2. использовать атрибут конвертера для inputText:
<h:inputText id="maxrecs" value="#{simpleBean.numRecords}" maxlength="4" converter="javax.faces.Integer" />
Вы можете просто использовать пересылку, поэтому сначала добавьте эту библиотеку
xmlns:pt="http://xmlns.jcp.org/jsf/passthrough"
и после использования этого
<h:inputText id="numberId" pt:type="number" />