myfaces-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From se08m...@technikum-wien.at
Subject [ExtVal] + facelets - EL syntax issue?
Date Fri, 27 Feb 2009 18:32:59 GMT

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


Mime
View raw message