Try a mask validator.

           <field property="salary" depends="required,mask">
               <arg0 key="employeeform.salary.displayname"/>
               <var>
                   <var-name>mask</var-name>
                   <var-value>^\$?\d+(,\d{3})*(\.\d{2})?$</var-value>
               </var>
           </field>

Hubert

On 8/4/06, fea jabi <[EMAIL PROTECTED]> wrote:
Thanks, Eric.


>From: "Givler, Eric" <[EMAIL PROTECTED]>
>Reply-To: "Struts Users Mailing List" <user@struts.apache.org>
>To: "Struts Users Mailing List" <user@struts.apache.org>
>Subject: RE: validate integer with a comma thousands seperator using
>Validator
>Date: Thu, 3 Aug 2006 11:45:28 -0400
>
>You could create another validator, and inside that perform a stripping of
>non-numeric characters (stripCommas), then
>execute code similar to the existing "long range" validator like this:
>
>
>     /**
>     * Determines if a formatted numeric value is between a range as
>defined by
>     * the user-supplied variables: min and max
>     * <p>
>     * Note: The only formattting performed is stripping off any commas.
>If the
>     * resulting number does not convert to a Long, then validation will
>fail as
>     * well.
>     * </p>
>     * <p>
>     * Validation succeeds if:
>     * <ol>
>     *    <li>The value in question is null.</li>
>     *    <li>The parsed field value is within the user-supplied
>range.</li>
>     * </ol>
>     * </p>
>     * @return
>     * @param application
>     * @param request
>     * @param errors
>     * @param field
>     * @param va
>     * @param bean
>     */
>     public static boolean validateFormattedLongRange(
>         Object bean,
>         ValidatorAction va,
>         Field field,
>         ActionMessages errors,
>         HttpServletRequest request,
>         ServletContext application)
>     {
>         System.out.println("*** validateFormattedLongRange (" +
>field.getProperty() + ") - START");
>         boolean isValid = true;
>
>         String value = null;
>         value = ValidationUtils.evaluateBean(bean, field);
>         if (!GenericValidator.isBlankOrNull(value))
>         {
>             try
>             {
>                 long minVal = Long.parseLong(field.getVarValue("min"));
>                 long maxVal = Long.parseLong(field.getVarValue("max"));
>                 // We don't want to do this unless we use map.put to show
>tampered value
>                 // value = value.replaceAll("[^-0123456789.]", "");
>                 value = value.replaceAll("[,]", "");
>                 long lngValue = Long.parseLong(value);
>
>                 if ((lngValue > maxVal) || (lngValue < minVal))
>                 {
>                     errors.add(field.getKey(),
>                         Resources.getActionMessage(request, va, field));
>                     isValid = false;
>                 }
>             }
>             catch (NumberFormatException nfex)
>             {
>                 errors.add(field.getKey(),
>                     Resources.getActionMessage(request, va, field));
>                 isValid = false;
>             }
>         }
>         System.out.println("*** validateFormattedLongRange (" +
>field.getProperty() + ") - END, returning " + isValid);
>         return isValid;
>     }
>
>Define this validator in validator-rules.xml:
>
>       <validator name="fmtLongRange"
>             classname="view.struts.validator.StrutsValidationExtensions"
>                method="validateFormattedLongRange"
>          methodParams="java.lang.Object,
>                        org.apache.commons.validator.ValidatorAction,
>                        org.apache.commons.validator.Field,
>                        org.apache.struts.action.ActionMessages,
>                        javax.servlet.http.HttpServletRequest,
>                        javax.servlet.ServletContext"
>                   msg="errors.fmtLongRange">
>       </validator>
>
>Add a rule for a field:
>
>       <field property="water_usage" page="2" depends="fmtLongRange">
>         <arg0 name="required" key="Page_2.water_usage"/>
>         <arg0 name="fmtLongRange" key="Page_2.water_usage" />
>         <arg1 name="fmtLongRange" key="${var:min}" resource="false"/>
>         <arg2 name="fmtLongRange" key="999,999,999" resource="false"/>
>         <var><var-name>min</var-name><var-value>0</var-value></var>
>
><var><var-name>max</var-name><var-value>999999999</var-value></var>
>       </field>
>
>Define the message in the resource file (errors.fmtLongRange):
>
>errors.fmtLongRange={0} must be a valid whole number between {1} and {2}.
>
>
>-----Original Message-----
>From: fea jabi [mailto:[EMAIL PROTECTED]
>Sent: Thursday, August 03, 2006 10:01 AM
>To: user@struts.apache.org
>Subject: RE: validate integer with a comma thousands seperator using
>Validator
>
>
>can someone help me with this please?
>
>
> >From: "fea jabi" <[EMAIL PROTECTED]>
> >Reply-To: "Struts Users Mailing List" <user@struts.apache.org>
> >To: user@struts.apache.org
> >Subject: validate integer with a comma thousands seperator using
>Validator
> >Date: Wed, 02 Aug 2006 10:09:19 -0400
> >
> >Using struts validator.
> >
> >have to validate the user entered value.
> >
> >The value entered should be a positive integer with a comma thousands
> >seperator. the number need not be in thousands.
> >
> >I have as below to check for positive integer without comma seperator.
>but
> >not sure how to validate if the user entered value with a comma
>seperator?
> >
> >i.e value like 25,349 // how to validate this?
> >
> ><field property="hrs" depends="integer,validwhen">
> >                <msg name="integer" key="errors.notvalid"/>
> >                <msg name="validwhen" key="errors.notvalid"/>
> >                <var>
> >                    <var-name>test</var-name>
> >                    <var-value>(*this* >= 0)</var-value>
> >                </var>
> >            </field>
> >
> >how to validate the user entered value with a comma seperator? Thanks.
> >
> >_________________________________________________________________
> >Don't just search. Find. Check out the new MSN Search!
> >http://search.msn.click-url.com/go/onm00200636ave/direct/01/
> >
> >
> >---------------------------------------------------------------------
> >To unsubscribe, e-mail: [EMAIL PROTECTED]
> >For additional commands, e-mail: [EMAIL PROTECTED]
> >
>
>_________________________________________________________________
>Don't just search. Find. Check out the new MSN Search!
>http://search.msn.click-url.com/go/onm00200636ave/direct/01/
>
>
>---------------------------------------------------------------------
>To unsubscribe, e-mail: [EMAIL PROTECTED]
>For additional commands, e-mail: [EMAIL PROTECTED]
>
>
>---------------------------------------------------------------------
>To unsubscribe, e-mail: [EMAIL PROTECTED]
>For additional commands, e-mail: [EMAIL PROTECTED]
>

_________________________________________________________________
Express yourself instantly with MSN Messenger! Download today - it's FREE!
http://messenger.msn.click-url.com/go/onm00200471ave/direct/01/


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to