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;
如果我在辅助bean中使用String或Integer对象,则不会设置值。现在当我使用原始int时,屏幕上会打印出0。我想屏幕是空的。
答案 0 :(得分:40)
您可以使用f:convertNumber
(使用integerOnly
属性)。
您可以获得更多信息here。
答案 1 :(得分:10)
您可以使用:
<f:validateLongRange minimum="20" maximum="1000" />
最小值是允许的最小值,最大值是最大值。 Look here for more details
答案 2 :(得分:7)
inputtext的JSF Number验证 在f inputText组件之间提及f:converterNumber组件并提及属性integerOnly和type。
<h:inputText id="textMobileId" label="Mobile" styleClass="controlfont" value="#{UserRegistrationBean.textMobile}">
<f:convertNumber integerOnly="true" type="number" />
</h:inputText>
如果您在单击命令按钮时在移动文本框中输入abcd,它会自动显示错误,如
Mobile: 'abcd' is not a number.
答案 3 :(得分:3)
i8taken解决方案将数字转换为long而不进行验证消息(至少在我的情况下:每页JSF2 /全局消息)。要获得正确的验证消息,您可以
1.检查bean中action方法的值;
或
2.对inputText使用converter属性:
<h:inputText id="maxrecs" value="#{simpleBean.numRecords}" maxlength="4" converter="javax.faces.Integer" />
答案 4 :(得分:-1)
您可以简单地使用passthrough,因此首先添加此库
xmlns:pt="http://xmlns.jcp.org/jsf/passthrough"
使用后
<h:inputText id="numberId" pt:type="number" />