[jboss-jira] [JBoss JIRA] (WFLY-6939) Usage of static fields from java.lang classes as EL expressions in JSPs doesn't work

James Perkins (JIRA) issues at jboss.org
Wed Jan 4 15:13:00 EST 2017


    [ https://issues.jboss.org/browse/WFLY-6939?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13343370#comment-13343370 ] 

James Perkins commented on WFLY-6939:
-------------------------------------

An import is indeed needed. The spec states
{quote}
3. Except for classes with java.lang.* package names, a class has to be explicitly imported before its static fields or methods can be referenced.
{quote}

The spec doesn't state anything about inner classes however. Looking at the {{javax.el.ImportHandler}} however shows that using inner classes will not work.
{code:java}
    private Class<?> getClassFor(String className) {
        if (!notAClass.contains(className)) {
            try {
                return Class.forName(className, false, Thread.currentThread().getContextClassLoader());
            } catch (ClassNotFoundException ex) {
                notAClass.add(className);
            }
        }
        return null;
    }
{code}

The class name would have to look something like {{org.jboss.example.Constants$Inner}} which cannot be imported so the inner class object would fail to be instantiated by he {{ImportHandler.getClassFor(String)}}.

In other words constants and enums needs to be imported and be top-level classes. This should be working correctly as of WildFly 10.1.0.Final.

> Usage of static fields from java.lang classes as EL expressions in JSPs doesn't work
> ------------------------------------------------------------------------------------
>
>                 Key: WFLY-6939
>                 URL: https://issues.jboss.org/browse/WFLY-6939
>             Project: WildFly
>          Issue Type: Bug
>          Components: Web (Undertow)
>    Affects Versions: 10.0.0.Final, 10.1.0.CR1
>            Reporter: jaikiran pai
>            Assignee: James Perkins
>             Fix For: 10.1.0.Final, 11.0.0.Alpha1
>
>
> Java EE7 (which supports EL 3.0 spec) allows JSPs to use EL expressions like:
> {code}
> <html>
>    <body>
>       foo: --- ${Boolean.TRUE} ---<br>
>       bar: --- ${Integer.MAX_VALUE} ---<br>
>    </body>
> </html>
> {code}
> However, the {code}${Boolean.TRUE}{code} and {code}${Integer.MAX_VALUE}{code} in the above example aren't evaluated correctly and instead a blank string is rendered for them. 
> More details in the linked forum thread https://developer.jboss.org/thread/271825



--
This message was sent by Atlassian JIRA
(v7.2.3#72005)


More information about the jboss-jira mailing list