Thanks Gerhard for your quick response ! I'll try that asap.

Regards,
Cedric

2010/8/17 Gerhard <[email protected]>:
> hi cedric,
>
> you can try the current version (see [1]).
>
> regards,
> gerhard
>
> [1] http://issues.apache.org/jira/browse/EXTVAL-113
>
> http://www.irian.at
>
> Your JSF powerhouse -
> JSF Consulting, Development and
> Courses in English and German
>
> Professional Support for Apache MyFaces
>
>
>
> 2010/8/17 Gerhard <[email protected]>
>
>> hi cedric,
>>
>> you are right - however, we need a property name to identify the target.
>> i'll change that - as soon as there is no property name, we don't continue
>> with the validation process and log a warning.
>>
>> as alternative you could refactor the expression so that the map-trick is
>> not at the >end< of the expression.
>>
>> the issue happens quite early - so everything which is in place for
>> skipping the validation process won't help.
>> (you could also customize extval to change the default behavior)
>>
>> regards,
>> gerhard
>>
>> http://www.irian.at
>>
>> Your JSF powerhouse -
>> JSF Consulting, Development and
>> Courses in English and German
>>
>> Professional Support for Apache MyFaces
>>
>>
>> 2010/8/17 Cédric Durmont <[email protected]>
>>
>> Hello,
>>>
>>> I'm new to ExtVal, so it's possible I'm missing something, but I have
>>> troubles with a page containing this :
>>>
>>> [...]
>>> <tr:selectOneChoice value="#{someBean.status[member]}">
>>> [...]
>>>
>>> Where status is declared as a Map (actually what I do here is the
>>> el-map trick to call a method with an argument), and member is a POJO.
>>> Works fine without ExtVal, but when I add ExtVal, I get an exception
>>> when validating the page :
>>>
>>> java.lang.IllegalStateException: error at binding:
>>> #{beanBenef.beneficiaire.famille.statut[membre]} -- an el-resolver
>>> error occurred! maybe you used an invalid binding. otherwise: please
>>> report the issue, deactivate the el-resovler of extval via web.xml
>>> context-param:
>>> org.apache.myfaces.extensions.validator.DEACTIVATE_EL_RESOLVER
>>> and test again.
>>>        at
>>> org.apache.myfaces.extensions.validator.core.el.DefaultELHelper.getPropertyDetailsOfValueBinding(DefaultELHelper.java:182)
>>>        at
>>> org.apache.myfaces.extensions.validator.crossval.recorder.CrossValidationUserInputRecorder.recordUserInput(CrossValidationUserInputRecorder.java:56)
>>>        at
>>> org.apache.myfaces.extensions.validator.core.interceptor.AbstractValidationInterceptor.beforeGetConvertedValue(AbstractValidationInterceptor.java:114)
>>>        at
>>> org.apache.myfaces.extensions.validator.core.renderkit.ExtValRendererWrapper.getConvertedValue(ExtValRendererWrapper.java:468)
>>>        at
>>> org.apache.myfaces.trinidad.component.UIXEditableValue.getConvertedValue(UIXEditableValue.java:422)
>>> [...]
>>> Caused by: java.lang.ClassCastException:
>>> sap.metier.utilisateur.Beneficiaire cannot be cast to java.lang.String
>>>        at
>>> org.apache.myfaces.extensions.validator.core.el.ExtValELResolver.setValue(ExtValELResolver.java:181)
>>>        at com.sun.el.parser.AstValue.setValue(AstValue.java:167)
>>>        at
>>> com.sun.el.ValueExpressionImpl.setValue(ValueExpressionImpl.java:269)
>>>        at
>>> com.sun.facelets.el.TagValueExpression.setValue(TagValueExpression.java:93)
>>>        at
>>> org.apache.myfaces.extensions.validator.core.el.DefaultELHelper.getPropertyDetailsOfValueBinding(DefaultELHelper.java:178)
>>>        ... 80 more
>>>
>>> The exception is thrown here (ExtValELResolver.java:181) :
>>>    public void setValue(ELContext elContext, Object o, Object o1, Object
>>> o2)
>>>    {
>>>        expression += "." + o1;
>>>        property = (String)o1;  // <== HERE
>>> [..]
>>> "o" is my Map, o1 is the POJO, which is definitely not castable to a
>>> String !
>>>
>>>
>>> The message says I can disable the resolver, which removes the error.
>>> But then I have other messages from ELHelpher trying to resolve
>>> complex EL such as #{bean.someMap[ value != null ? value :
>>> 'default']}. The message says that :'default' is not a valid EL
>>> operator...
>>>
>>>
>>> Is there a way to circumvent this ? I definitely need a Map with a
>>> non-String Object as key ! Is it possible to prevent ExtVal from
>>> analysing one EL, or one page ?
>>>
>>> Regards,
>>> Cedric Durmont
>>>
>>
>>
>

Reply via email to