[jboss-user] [JBoss Seam] - How to validate currency/float precision on a form
jfrankman
do-not-reply at jboss.com
Mon Oct 8 18:52:19 EDT 2007
Other than doing it manually, is it possible to validate a currency or float amount on a form to make sure that it conforms to a certain precision and scale? I was hoping I could use an annotation on the entity or a f:convertnumber on the form but have not had any success.
I am trying to validate an input field to make sure the input currency amount has a precision of 7 and a scale of 2. I have tried the following:
1. Used <f:convertNumber type="currency" currencySymbol="$"/>
inside my input text field. RESULT: The form produces an error "value must be a number" even if the number is valid.
2. Used <f:convertNumber maxFractionDigits="2" minFractionDigits="2"/>
in the inputtext field,. RESULT: Any fraction amount is used. No validation occurs.
3. Use @Digits on the entity bean. RESULT: cannot find annotation. I presume that the @Digits is not included in the hibernate validator that comes with seam 1.2.1 GA.
My entity class is:
@Entity
| @Table(name = "FBCLIENTTRANSLINEITEMS")
| @Name("clientTransmittalLineItem")
| @Scope(ScopeType.SESSION)
| public class ClientTransmittalLineItemVO {
|
| private int lineitemid;
| private ClientTransmittalVO clientTransmittalVO;
| private Double cashamount;
|
| public ClientTransmittalLineItemVO() {
| }
|
| @Id
| @Column(name = "LINEITEMID", unique = true, nullable = false)
| @NotNull @GeneratedValue
| public int getLineitemid() {
| return this.lineitemid;
| }
|
| @Column(name = "CASHAMOUNT", precision=7, scale=2)
| public Double getCashamount() {
| return this.cashamount;
| }
|
| public void setCashamount(Double cashamount) {
| this.cashamount = cashamount;
| }
| }
My xhtml is:
<!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
| "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
| <ui:composition xmlns="http://www.w3.org/1999/xhtml"
| xmlns:s="http://jboss.com/products/seam/taglib"
| xmlns:ui="http://java.sun.com/jsf/facelets"
| xmlns:f="http://java.sun.com/jsf/core"
| xmlns:h="http://java.sun.com/jsf/html"
| xmlns:a="https://ajax4jsf.dev.java.net/ajax"
| xmlns:rich="http://richfaces.ajax4jsf.org/rich"
| template="layout/frametemplate.xhtml">
|
| <ui:define name="body">
|
| <h:messages globalOnly="true" styleClass="message" id="globalMessages"/>
|
| <h:form id="clienttranslineitems" styleClass="edit">
| <rich:panel>
| <f:facet name="header">Edit Transmittal Line Item</f:facet>
|
| <s:decorate id="lineitemidDecoration" template="layout/edit.xhtml">
| <ui:define name="label">Line Item ID</ui:define>
| <h:inputText id="lineitemid"
| required="true"
| value="#{lineItem.lineitemid}">
| <a:support event="onblur" reRender="lineitemidDecoration"/>
| </h:inputText>
| </s:decorate>
|
| <s:decorate id="cashamountDecoration" template="layout/edit.xhtml">
| <ui:define name="label">Cash Amount</ui:define>
| <h:inputText id="cashamount"
| value="#{lineItem.cashamount}">
|
| <a:support event="onblur" reRender="checkamountDecoration"/>
| <f:convertNumber type="currency" currencySymbol="$"/>
| </h:inputText>
| </s:decorate>
|
| <div style="clear:both">
| <span class="required">*</span>
| required fields
| </div>
| </rich:panel>
| <div class="actionButtons">
| <h:commandButton
| action="#{clientTransmittalLineItemAction.saveClientTransmittalLineItem}"
| id="create" value="Save">
| </h:commandButton>
| </div>
| </h:form>
| </ui:define>
| </ui:composition>
My Environment:
JBoss 4.0.5
Seam 1.2.1 GA
Project is generated by seam-gen.
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4092786#4092786
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4092786
More information about the jboss-user
mailing list