I'm using a bean for validation. In particular, I want to make sure
that one field is lte another (think exam scores 6 out of 12). So I
have a bean set up like this:
<bean name="maxOne" lifecycle="none"
class="ca.ucalgary.commons.mt3.controller.MaxNullValidator">
<set name="max" value="ognl:record.rdg1Max"/>
</bean>
And components like this:
<component id="rdg1" type="TextField">
<binding name="value" value="ognl:record.rdg1"/>
<binding name="translator" value="translator:number"/>
<binding name="displayName" value="literal:rdg1"/>
<binding name="validators" value="beans.maxOne"/>
</component>
<component id="rdg1Max" type="TextField">
<binding name="value" value="ognl:record.rdg1Max"/>
<binding name="translator" value="translator:number"/>
<binding name="displayName" value="literal:rdg1 Max"/>
</component>
Template is like this:
<input jwcid="rdg1" class="score"/>
out of
<input jwcid="rdg1Max" class="score"/>
Now ignoring the actual validation, which is simple, when I render
this page, max is null as indicated by logging from the setter in
maxOne, as expected. When I submit, however, it is still null. When
the page comes back (after failing validation), the max is now set
properly, and simply pressing submit again will succeed.
The curious thing is if I do the same thing using Date, the date will
be null on pageRender, but will take the value of the date on submit.
With String, I have had it go both ways, so I have been bashing my
head against the wall trying to figure out what the difference is, to
no avail. I know I must be missing something. I've been playing with
different object types and translators, but it all just confuses the
issue.
How do I make sure the setter for a bean validator is called properly
(for an Integer) before the validate method on the validator is
called? ie How do I ensure the behaviour seen for Date also works for
an Integer?
Thanks,
J
PS. I also know this would be easy using js, by overriding
renderContribution, but we need server-side too.
--
Julian Wood <[EMAIL PROTECTED]>
Software Engineer
Teaching & Learning Centre
University of Calgary
http://tlc.ucalgary.ca