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 >>> >> >> >

