Allow validator parameters to be set via OGNL rather than hard coding in XML
----------------------------------------------------------------------------

                 Key: WW-2923
                 URL: https://issues.apache.org/struts/browse/WW-2923
             Project: Struts 2
          Issue Type: Improvement
          Components: XML Validators
    Affects Versions: 2.1.2
         Environment: Standard
            Reporter: Scott Stanlick
            Priority: Minor


I have been experimenting with a softer way to perform validations.  I like the 
idea of externalizing the validations in XML, however, it would be more 
flexible if the parameters could be "set" using matches from the ValueStack 
rather than requiring them to be hardcoded in the XML.  I have drilled into the 
validator creation and believe that the ValidatorConfig.Builder(ValidatorConfig 
cfg) might be the place to check for ${foo}.  There are many other places in 
the framework where this string is searched for and its content replaces with 
an OGNL finder method.

In my current use case, I am fetching valid ranges from a database according to 
user inputs.  These varying integers are what I would like to use as my min and 
max values.  I realize I could use an expression type validation or just code 
the validation inside my action.  However, it doesn't seem natural to be forced 
into an alternative technique with the ValueStack being so central to the 
framework.  It seems that if the value stack can be used for the validator 
message "Age must be between ${min} and ${max}" it should also be available for 
fetching constraints.

        <field name="age">
                <field-validator type="int">
                        <param name="min">${minLimit}</param>
                        <param name="max">${maxLimit}</param>
                        <message>Age must be between ${minLimit} and 
${maxLimit}</message>
                </field-validator>
        </field>

Peace,
Scott

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to