<ice:inputText id="txt-tlmanage-quantity"
value="#{createToolsOrderBean.toolsOrderVO.quantity}" tabindex="7"
onkeydown="moveFocus(event, 'txt-tlmanage-unitprice')"
style="margin-left: 4px;margin-bottom: 4px;">
</ice:inputText>
当我通过调用createSomething
方法按下按钮时,会提交此页面。但是这个方法在我输入字符串值时无法调用,因为quantity
的类型为Integer.It会给出错误背面,但是怎么会知道,什么会出错?。
我使用<ice:message>
,但它会在页面上提供长错误说明。
Error Meaasage :
mainForm:txt-tlmanage-quantity: 'dsad' must be a number between -2147483648 and 2147483647 Example: 9346
有没有办法打印我自己的错误信息?
答案 0 :(得分:1)
你应该在冰上添加一个整数转换器:inputText。这会将输入的字符串转换为整数。
<ice:inputText id="txt-tlmanage-quantity"
value="#{createToolsOrderBean.toolsOrderVO.quantity}" tabindex="7"
onkeydown="moveFocus(event, 'txt-tlmanage-unitprice')"
style="margin-left: 4px;margin-bottom: 4px;">
<f:converter converterId="javax.faces.Integer"/>
</ice:inputText>
如果您不输入整数,您仍会收到错误消息。要显示自定义消息而不是内置消息,您应该创建消息包。在其中一个包中创建属性文件,并添加自定义错误消息:
javax.faces.converter.IntegerConverter.INTEGER={2}: ''{0}'' must be a number consisting of one or more digits.
javax.faces.converter.IntegerConverter.INTEGER_detail={2}: ''{0}'' must be a number between -2147483648 and 2147483647 Example: {1}
将此属性文件作为资源包添加到faces-config.xml
:
<faces-config>
<application>
<message-bundle>my.package.mypropertiesfile</message-bundle>
</application>
</faces-config>
答案 1 :(得分:0)
首先,编辑并粘贴错误,它将帮助我们为您提供帮助。
如果您想显示自定义错误,请使用FacesMessage
示例:
public void testingErrorMessages() {
try {
throw new Exception("");
} catch(Exception exc) {
FacesMessage facesMsg = new FacesMessage(FacesMessage.SEVERITY_ERROR, null, "Error message here!");
FacesContext.getCurrentInstance().addMessage(null, facesMsg);
}
}
只需添加它并更新<ice:message>
即可。 RichFaces reRender
和PrimeFaces update
,但我不知道它在IceFaces中是如何运作的。
答案 2 :(得分:0)
我认为你的问题是他没有告诉你,你可能不会使用任何字母?
你可以通过使用例如转换器。
只需将以下代码段添加到inputText属性:
converter="javax.faces.Integer"
当你现在提交时,你会收到错误。如果要创建自定义错误消息,请使用验证程序。你会找到一个很好的教程here。
答案 3 :(得分:0)
在jsf中使用converter属性仅接受数值
如果要在jsf中打印自己的错误消息,则可以使用converterMessage属性。
<h:inputText id="textCreditCardNumberId" label="CreditCard Number"
converter="javax.faces.Integer" converterMessage="Please enter numeric only"
maxlength="16" styleClass="controlfont"
value="#{OnlineReservationBean.creditCardNumber}"></h:inputText>