You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@myfaces.apache.org by Gerhard Petracek <ge...@gmail.com> on 2009/03/01 02:12:57 UTC

Re: [ExtVal] + facelets - EL syntax issue?

hello thomas,

i've uploaded a patch - see [1].
furthermore, i've uploaded the patched jar (+ source) - see [2].

regards,
gerhard

[1] http://issues.apache.org/jira/browse/EXTVAL-37
[2] http://people.apache.org/~gpetracek/myfaces/extval/issues/37/



2009/2/28 Gerhard Petracek <ge...@gmail.com>

> hello thomas,
>
> thank you for the detailed description!
> this issue is solved in extval for jsf 1.2 -> if you have the possibility
> to upgrade to jsf 1.2 + extval 1.2.x, you don't have this problem.
>
> @extval for jsf 1.1: i created an issue [1]
>
> regards,
> gerhard
>
> [1] http://issues.apache.org/jira/browse/EXTVAL-37
>
>
>
> 2009/2/27 <se...@technikum-wien.at>
>
>
>> Hello,
>>
>> I'm sorry if this ends up in the wrong place, i'm new to this.
>> I encountered a problem as i tried to use extval together with facelets
>>
>> extval 1.1.1
>> facelets 1.1.14
>>
>> The Problem concerns the DefaultELHelper and a special case of EL usage in
>> custom facelet tags.
>>
>> I am using custom composition tags in facelets like shown in this IBM
>> article by Richard Hightower:
>> http://www.ibm.com/developerworks/java/library/j-facelets/#N102EF
>>
>> custom tag inside a facelet:
>>
>> <my:customTag entity="#{viewBean}" fieldName="address" />
>>
>> (the viewBean has an address property)
>>
>>
>> custom tag source:
>>
>> <ui:composition>
>>
>>        <h:selectOneMenu id="#{fieldName}_input"
>> value="#{entity[fieldName]}" >
>>                <f:selectItem ... />
>>                ...
>>        </h:selectOneMenu>
>>
>> </ui:composition>
>>
>> Problem and StackTrace:
>>
>> fieldName contains the String "address", which is what we want to be
>> evaluated
>> so we cant put the '' around the fieldName
>>
>> ValueBindingExpression = "#{entity[fieldName]}"
>>
>> result value = "entity[address]"
>>
>> => no '' around address
>>
>> code line 93:
>> int index1 = expression.lastIndexOf("']");
>>
>>        expression does not contain '] but it contains ]
>>        therefore index1 and index2 are -1 and the else branch is executed
>>        which does not set base, so it remains null
>>        finally this leads to an exception
>>
>> Daemon Thread [http-8080-2] (Suspended (breakpoint at line 93 in
>> ValueBindingExpression))
>>        ValueBindingExpression.<init>(String) line: 93
>>        DefaultELHelper.getValueBindingExpression(UIComponent, boolean)
>> line: 104
>>        DefaultELHelper.getPropertyDetailsOfValueBinding(UIComponent) line:
>> 138
>>        DefaultComponentMetaDataExtractor.extract(FacesContext, Object)
>> line: 85
>>
>>  ValidationInterceptorWithSkipValidationSupport(ValidationInterceptor).initComponent(FacesContext,
>> UIComponent) line: 74
>>
>>  ValidationInterceptorWithSkipValidationSupport(ValidationInterceptor).beforeEncodeBegin(FacesContext,
>> UIComponent, Renderer) line: 53
>>
>>  ExtValGenericRendererWrapper(ExtValRendererWrapper).encodeBegin(FacesContext,
>> UIComponent) line: 208
>>        ExtValGenericRendererWrapper.intercept(Object, Method, Object[],
>> MethodProxy) line: 71
>>
>>  HtmlMenuRenderer$$EnhancerByCGLIB$$ba4b3ba9.encodeBegin(FacesContext,
>> UIComponent) line: not available
>>        HtmlSelectOneMenu(UIComponentBase).encodeBegin(FacesContext) line:
>> 746
>>        ComponentSupport.encodeRecursive(FacesContext, UIComponent) line:
>> 242
>>        ComponentSupport.encodeRecursive(FacesContext, UIComponent) line:
>> 249
>>        ComponentSupport.encodeRecursive(FacesContext, UIComponent) line:
>> 249
>>        FaceletViewHandler.renderView(FacesContext, UIViewRoot) line: 594
>>        AjaxViewHandler(ViewHandlerWrapper).renderView(FacesContext,
>> UIViewRoot) line: 101
>>        AjaxViewHandler.renderView(FacesContext, UIViewRoot) line: 222
>>        RenderResponseExecutor.execute(FacesContext) line: 41
>>        LifecycleImpl.render(FacesContext) line: 146
>>        FacesServlet.service(ServletRequest, ServletResponse) line: 147
>>        ApplicationFilterChain.internalDoFilter(ServletRequest,
>> ServletResponse) line: 290
>>        ApplicationFilterChain.doFilter(ServletRequest, ServletResponse)
>> line: 206
>>        AuthorizationFilter.doFilter(ServletRequest, ServletResponse,
>> FilterChain) line: 97
>>        ApplicationFilterChain.internalDoFilter(ServletRequest,
>> ServletResponse) line: 235
>>        ApplicationFilterChain.doFilter(ServletRequest, ServletResponse)
>> line: 206
>>        ExtensionsFilter.doFilter(ServletRequest, ServletResponse,
>> FilterChain) line: 246
>>        ApplicationFilterChain.internalDoFilter(ServletRequest,
>> ServletResponse) line: 235
>>        ApplicationFilterChain.doFilter(ServletRequest, ServletResponse)
>> line: 206
>>        EncodingFilter.doFilter(ServletRequest, ServletResponse,
>> FilterChain) line: 22
>>        ApplicationFilterChain.internalDoFilter(ServletRequest,
>> ServletResponse) line: 235
>>        ApplicationFilterChain.doFilter(ServletRequest, ServletResponse)
>> line: 206
>>        ExtensionsFilter(ExtensionsFilter).doFilter(ServletRequest,
>> ServletResponse, FilterChain) line: 301
>>        ApplicationFilterChain.internalDoFilter(ServletRequest,
>> ServletResponse) line: 235
>>        ApplicationFilterChain.doFilter(ServletRequest, ServletResponse)
>> line: 206
>>        StandardWrapperValve.invoke(Request, Response) line: 233
>>        StandardContextValve.invoke(Request, Response) line: 191
>>        StandardHostValve.invoke(Request, Response) line: 128
>>        ErrorReportValve.invoke(Request, Response) line: 102
>>        StandardEngineValve.invoke(Request, Response) line: 109
>>        CoyoteAdapter.service(Request, Response) line: 286
>>        Http11AprProcessor.process(long) line: 857
>>        Http11AprProtocol$Http11ConnectionHandler.process(long) line: 565
>>        AprEndpoint$Worker.run() line: 1509
>>        Thread.run() line: 619
>>
>> without extval this expression evaluates and works fine, so i guess this
>> is a lack of facelets/EL support.
>> please correct me if i am wrong, and feel free to kill me if this is not
>> the right place to report such a problem.
>>
>> kind regards,
>> thomas
>>
>>


-- 

http://www.irian.at

Your JSF powerhouse -
JSF Consulting, Development and
Courses in English and German

Professional Support for Apache MyFaces