[bv-dev] Nested message parameters and EL expressions
Hardy Ferentschik
hardy at hibernate.org
Mon Nov 18 15:28:47 EST 2013
> not the sure whether this is so easy. I think the case of nested parameters is not properly covered in the spec atm.
> A few comments inline
>
> On 18 Jan 2013, at 16:31, Gunnar Morling <gunnar at hibernate.org> wrote:
>
> > I think the algorithm should cover for that case, even if we didn't plan for it.
> >
> > In steps 1 - 4 only message parameters are resolved (against the resource bundles and then in step 4 against constraint attributes). Only in step 5 the EL evaluation is performed. There is no loop back to parameter resolution after EL interpolation.
>
> I think that is basically missing. I am not sure whether it is a good idea to perform message parameter resolution within an EL expression.
> I’d rather loop back after EL evaluation and perform another message parameter resolution.
>
> Why would you do that though? Seems like the current algorithm covers that case already?
Provided you imply that this type of nested case is allowed.
> Wouldn't it get more complicated by doing another loop?
I think it would be the more natural way of doing it and also inline with how the current algorithm works.
> > After step 3 (resource bundle replacements): "${validatedValue > {messageThreshold} ? 'Viel zu groß' : 'Zu groß’}"
>
> there is no need for {messageThreshold} in the comparison. The value for messageTreshold is already bound to the EL context. '${validatedValue > messageThreshold’
> is already sufficient.
>
> Yes, that's right indeed. I was under the assumption that constraint parameters are not available for EL interpolation but as you say they are. So the scenario really is using messages from the resource bundle.
>
> Also I rather just let the EL return {muchTooLarge.message} resp {aBitTooLarge.message} and then loop back, instead to do replacement with the expression first.
>
> What is the advantage of that?
I am thinking of something like this: ${1 > 0 ? ‘{' : ‘}’}
Would your interpretation not imply that we make an attempt to resolve {' : ‘} as message parameter. I guess in most cases this might be harmless, but I have a bad feeling about
this.
—Hardy
More information about the beanvalidation-dev
mailing list