DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG·
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://issues.apache.org/bugzilla/show_bug.cgi?id=32347>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND·
INSERTED IN THE BUG DATABASE.

http://issues.apache.org/bugzilla/show_bug.cgi?id=32347

           Summary: bean.propertyName does not evaluate correctly if the
                    bean implements java.util.List
           Product: Commons
           Version: 1.0 Final
          Platform: PC
        OS/Version: Windows 2000
            Status: NEW
          Severity: normal
          Priority: P2
         Component: EL
        AssignedTo: [EMAIL PROTECTED]
        ReportedBy: [EMAIL PROTECTED]


I was using EL in a choose tag and could not get it to work at all on a 
particular page.  It worked on other pages, but on one particular page I kept 
getting errors no matter what I tried.  I would get errors like the following:

"${VistaTreeModelProxy.empty == false}" contains invalid expression(s): 
javax.servlet.jsp.el.ELException: Encountered "empty", expected one of 
[<IDENTIFIER>]
        at org.apache.jasper.compiler.DefaultErrorHandler.jspError
(DefaultErrorHandler.java:39)
        at org.apache.jasper.compiler.ErrorDispatcher.dispatch
(ErrorDispatcher.java:409)

After trying many different syntaxes, I got a trace of:
2004-11-22 09:28:16 ApplicationDispatcher[/JSF] Servlet.service() for servlet 
jsp threw exception
javax.servlet.jsp.el.ELException: The "." operator was supplied with an index 
value of type "java.lang.String" to be applied to a List or array, but that 
value cannot be converted to an integer.
        at org.apache.commons.el.Logger.logError(Logger.java:481)
        at org.apache.commons.el.Logger.logError(Logger.java:498)
        at org.apache.commons.el.Logger.logError(Logger.java:566)
        at org.apache.commons.el.ArraySuffix.evaluate(ArraySuffix.java:227)
        at org.apache.commons.el.ComplexValue.evaluate(ComplexValue.java:145)


I downloaded the source and followed the stack-trace.  It looks as though the 
fact that my bean implemented java.util.List was causing the problem.  (This is 
the only difference I could really find from my identical use of the "choose" 
tag in other pages.)

>From what I have read, the dot-syntax should always try for a bean property, 
but this doesn't seem to work in the case of a List.  Also, using the 
["property"] syntax will also always try to coerce "property" into an integer.  
I am not sure if this is correct either, although what I have read is a bit 
ambiguous.

To work-around this, just don't use EL when it gets confused. The syntax below 
works:
<c:when test="<%= VistaTreeModelProxy.isEmpty() == false %>">

-- 
Configure bugmail: http://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to