RE: validate integer with a comma thousands seperator using Validator

2006-08-04 Thread fea jabi

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
*liThe value in question is null./li
*liThe 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/
varvar-namemin/var-namevar-value0/var-value/var

varvar-namemax/var-namevar-value9/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

RE: validate integer with a comma thousands seperator using Validator

2006-08-03 Thread fea jabi

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-nametest/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]



RE: validate integer with a comma thousands seperator using Validator

2006-08-03 Thread Givler, Eric
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
*liThe value in question is null./li
*liThe 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/
varvar-namemin/var-namevar-value0/var-value/var
varvar-namemax/var-namevar-value9/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-nametest/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