[seam-issues] [JBoss JIRA] (SEAMFACES-208) Support for resolving no argument methods in an EL value expression

Jason Porter (Resolved) (JIRA) jira-events at lists.jboss.org
Tue Dec 6 20:03:41 EST 2011


     [ https://issues.jboss.org/browse/SEAMFACES-208?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Jason Porter resolved SEAMFACES-208.
------------------------------------

      Assignee: Jason Porter
    Resolution: Done

    
> Support for resolving no argument methods in an EL value expression
> -------------------------------------------------------------------
>
>                 Key: SEAMFACES-208
>                 URL: https://issues.jboss.org/browse/SEAMFACES-208
>             Project: Seam Faces
>          Issue Type: Feature Request
>          Components: CDI Integration
>    Affects Versions: 3.1.0.Beta2
>            Reporter: Dan Allen
>            Assignee: Jason Porter
>             Fix For: 3.1.0.Final
>
>
> The EL specification added support for resolving parameterized methods in value and method expressions, with one exception. It does not support resolving methods with 0 parameters. The reason is that an () used at the end of a property is not acknowledged. As a result, the resolver attempts to resolve the method name as a bean property.
> For example, assume we have the method:
> {code}
> public Integer count() {
>     return 1;
> }
> {code}
> If we attempt to resolve this in a value expression using:
> {code}
> #{bean.count()}
> {code}
> We can an error message "count property not found on bean"
> It works as expected if the method has at least one parameter:
> {code}
> public Integer count(Integer i) {
>     return i;
> }
> {code}
> The following expression will resolve to a value of 1.
> {code}
> #{bean.count(1)}
> {code}
> This also breaks resolving the size of a collection:
> {code}
> #{employees.size()}
> {code}
> In this case, the error is a bit strange because it tries to parse size as an index.
> The root cause of all this is that the spec does not properly honor 0 parameters as a valid number of parameters for a parameterized methods. Instead, it ignores the () and treats the expression as a property.
> Method expressions does not have this limitation since both .action and .action() are equivalent expressions.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.jboss.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        


More information about the seam-issues mailing list