Hi,
Thanks for all replies up to now and your patience :).
Here is the validateMinLength method in my custom validator
public static boolean validateMinLength(Object bean, Field field)
{
// Get value that the user has entered.
String value =
ValidatorUtils.getValueAsString(bean, field.getProperty());
// Get the minlength var value from validation.xml
String minLength = field.getVarValue("minlength");
// Convert value to int for minLength() method.
int minValue = Integer.parseInt(minLength);
// Compare value to min length value allowed.
boolean result = GenericValidator.minLength(value,minValue);
return result;
}
I realise that a should be using the formatInt() method to convert the
string to int but if you could ignore that for now.
Should I be reading the resource and name attributes from args and msg
in this method and setting them within a message class to get them work
within my application?
Thanks in advance,
David
Aaron Sheffey wrote:
>We output custom messages all the time with no issue, as follows:
>
><field property="some_field_name" depends="mask">
> <arg key="some_field_name"/>
> <var><var-name>mask</var-name><var-value>^some_mask$</var-value></
>var>
> <msg name="mask" key="Some Field Name must be \'some_mask\'."
>resource="false" />
></field>
>
>
>
>
>David Duff <[EMAIL PROTECTED]>
>08/30/2005 12:14 PM
>Please respond to
>"Jakarta Commons Users List" <[email protected]>
>
>
>To
>Jakarta Commons Users List <[email protected]>
>cc
>
>Subject
>Re: [Validator] Commons Validator problem
>
>
>
>
>
>
>Hi,
>
>Not using struts, using commons-validator.
>
>David
>
>Niall Pemberton wrote:
>
>
>
>>The message handling will be in your custom validator - so without seeing
>>how thats working its impossible to know why this isn't working for you.
>>
>>Are you using this with Struts? If so, does the *standard* struts
>>
>>
>minlength
>
>
>>validator work properly?
>>
>>Niall
>>
>>----- Original Message -----
>>From: "David Duff" <[EMAIL PROTECTED]>
>>Sent: Tuesday, August 30, 2005 4:52 PM
>>
>>
>>
>>
>>
>>
>>>Hi
>>>
>>>I am baffled to why the name and resource attributes in the arg and msg
>>>seem not to work in my application. Surely someone has used validator
>>>with a second argument, overridden the default message, or set resource
>>>to false in their configuration. I was thinking that the problem I have
>>>was of my making.
>>>
>>>Can someone please tell me why these attributes won't work on my
>>>application? All the information that you will need is below:
>>>
>>>Thanks in advance,
>>>David
>>>
>>>David Duff wrote:
>>>
>>>
>>>
>>>
>>>
>>>>Hi,
>>>>
>>>>That doesn't work for me. It keeps printing out the message I defined
>>>>in validation-rules.xml minus the second arg because it is not defined
>>>>anymore.
>>>>
>>>><validator
>>>> name="minlength"
>>>>classname="com.company.product.controller.validator.CustomValidator"
>>>> method="validateMinLength"
>>>> methodParams="java.lang.Object,
>>>> org.apache.commons.validator.Field"
>>>> *msg="errors.min"*/>
>>>>
>>>>Is there any way to override this message with the one in
>>>>
>>>>
>validator.xml?
>
>
>>>><msg name="minlength" key="My Message" resource="false" />
>>>>
>>>>Thanks in advance,
>>>>DAvid
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>Aaron Sheffey wrote:
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>>If you want to print out a specific message for the validation, you
>>>>>
>>>>>
>can
>
>
>>>>>add that to the field, too:
>>>>>
>>>>><field property="username" depends="required,minlength">
>>>>> <arg key="username"/>
>>>>> <var><var-name>minlength</var-name><var-value>6</var-value></var>
>>>>> <msg name="minlength" key="The minimum length for the User Name
>>>>>
>>>>>
>>>>>
>>>>>
>>is
>>
>>
>>
>>
>>>>>6" resource="false" />
>>>>></field>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>David Duff <[EMAIL PROTECTED]>
>>>>>08/24/2005 12:09 PM
>>>>>Please respond to
>>>>>"Jakarta Commons Users List" <[email protected]>
>>>>>
>>>>>
>>>>>To
>>>>>Jakarta Commons Users List <[email protected]>
>>>>>cc
>>>>>
>>>>>Subject
>>>>>Re: Commons Validator problem
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>Hi,
>>>>>
>>>>>Thanks for the reply
>>>>>
>>>>>The msg I want to print out has two arguments:
>>>>>
>>>>>errors.min=The {0} must have at least {1} characters.
>>>>>
>>>>>This would leave:
>>>>>
>>>>>The user name must have at least {1} characters.
>>>>>
>>>>>I can get round the problem I'm having by specifying a value in the
>>>>>resource like
>>>>>
>>>>><field property="username" depends="required,minlength">
>>>>> <arg key="user.username" position="0"/>
>>>>> <arg key="user.min" position="1"/>
>>>>>
>>>>><var><var-name>minlength</var-name><var-value>6</var-value></var>
>>>>>
>>>>></field>
>>>>>
>>>>>properties file:
>>>>>user.min= 6
>>>>>
>>>>>I would like to do it like it was specified in the user guides instead
>>>>>of intoducing a workaround and having to input the value twice. Once
>>>>>
>>>>>
>in
>
>
>>>>>the resource and another in the validator.xml.
>>>>>
>>>>>Thanks in advance.
>>>>>David
>>>>>
>>>>>Aaron Sheffey wrote:
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>>You probably don't need to specify all the other stuff in the field.
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>Based
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>>on what I have done with mask, do something like
>>>>>>
>>>>>><field property="username" depends="required,minlength">
>>>>>> <arg key="username"/>
>>>>>><var><var-name>minlength</var-name><var-value>6</var-value></var>
>>>>>></field>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>David Duff <[EMAIL PROTECTED]>
>>>>>>08/24/2005 11:43 AM
>>>>>>Please respond to
>>>>>>"Jakarta Commons Users List" <[email protected]>
>>>>>>
>>>>>>
>>>>>>To
>>>>>>[email protected]
>>>>>>cc
>>>>>>
>>>>>>Subject
>>>>>>Commons Validator problem
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>Hi,
>>>>>>
>>>>>>I am trying to specify a min. length for a user name field in my
>>>>>>application.
>>>>>>
>>>>>>In my validatior.xml I have specified:
>>>>>>
>>>>>>|<field property="username" depends="required,minlength">
>>>>>><arg key="user.username" position="0"/>
>>>>>><arg name="minlength" key="${var:minlength}" resource="false" ||
>>>>>>position="1"||/>
>>>>>><var><var-name>minlength</var-name><var-value>6</var-value></var>
>>>>>></field>
>>>>>>
>>>>>>In my validator-rules.xml I have:
>>>>>>
>>>>>><validator
>>>>>> name="minlength"
>>>>>>classname="com.company.product.controller.validator.CustomValidator"
>>>>>> method="validateMinLength"
>>>>>> methodParams="java.lang.Object,
>>>>>> org.apache.commons.validator.Field"
>>>>>> msg="errors.min"/>
>>>>>>
>>>>>>In my custom validator I have my validateMinLength() method.
>>>>>>
>>>>>>I would expect the two arguments (user.username and minlength) to get
>>>>>>picked up but it only picks up the first argument even though ||I can
>>>>>>see the two args in the field object||. When I remove the name
>>>>>>attribute from arg, it will then pick up the second argument but look
>>>>>>for the key in the resource even although resource is set to false.
>>>>>>
>>>>>>I am using commons-validator-1.1.4.jar|
>>>>>>
>>>>>>Can anyone tell me what I'm doing wrong?
>>>>>>
>>>>>>Thanks in advance.
>>>>>>David
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>
>>---------------------------------------------------------------------
>>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]
>
>
>
>
>
>------------------------------------------------------------------------
>
>No virus found in this incoming message.
>Checked by AVG Anti-Virus.
>Version: 7.0.344 / Virus Database: 267.10.17/84 - Release Date: 29/08/2005
>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]