Try moving the validation logic to the second component... I don't think rdg1Max has rewinded (and given a chance to update its value) when rdg's validator kicks in.
Julian Wood wrote: > Hmm, so am I off in left field here? Is it not possible to validate > the contents of one field based on the contents of another, > server-side? Is there a bug? > > Thanks, > > J > > On 1-Oct-06, at 8:31 PM, Julian Wood wrote: > >> 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 > > > -- Andreas Andreou - [EMAIL PROTECTED] - http://andyhot.di.uoa.gr Tapestry / Tacos developer Open Source / J2EE Consulting --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]