After reading this a few times it is still not clear to me what the issue is but I’ll try to say something helpful.
Yeah, I think ultimately it’s esoteric, as advertised, and just not very interesting. But thanks for trying!
“takeValuesFromRequest()” does try to do some validation if it can figure out the key paths and figure out a “validate()” method to call.
What I’m talking about here is the validation that happens just _prior_ to that—what Chuck calls “Automatic EOF Property Validation” on p.143 of Practical WebObjects. My example triggers that because there are model attributes with allowsNull = N.
Obviously if it is just a method on the page it cannot “discover” validation methods to call because it doesn’t know the underlying logic or how to get to the EO that is covered by the custom WOComponent method. This type of “automatic” validation only can happen when you are setting a value hanging from an EO listed directly in the .wod
You may well be right, despite the fact that I think we’re talking about slightly different phases of validation. My observation is just that changing this:
<wo:text value="$^value"></wo:text>
to this:
<wo:text value="$value"></wo:text>
(even when paired with a setValue() method that calls setValueForBinding(value, "value”)) seems to _bypass_ the “Automatic EOF Property Validation” that happens in the first case above.
I’m almost boring myself talking about it now. I doubt there’s any bug, unless it’s in my code, I just thought someone else may have noted the inconsistency themselves, and could perhaps offer a workaround or something. But it’s not a big deal.