**** I am using Tomcat 6.0.18 with JDK 1.5.0_17 on CentOS 5. I am getting a
compiling error on the following code in a jsp page that uses an inner
class. I remember I used to be able to do this with a different container
(implementing JSP 1.2 and JDK 1.4).

<%!

private class Test {
        String name = null;
        
        public Test(String n) {
                this.name = n;
        }
        
        String getName() {
                return this.name;
        }
}

static Test test = new Test("foobar");
%>

<%= test.getName() %>

**** With Tomcat, I am getting the following error:

org.apache.jasper.JasperException: Unable to compile class for JSP: 

An error occurred at line: 15 in the jsp file: /test.jsp
No enclosing instance of type test_jsp is accessible. Must qualify the
allocation with an enclosing instance of type test_jsp (e.g. x.new A() where
x is an instance of test_jsp).
12:     }
13: }
14: 
15: static Test test = new Test("foobar");
16: %>
17: 
18: <%= test.getName() %>

**** Changing the code as following worked:

static Test test = new test_jsp().new Test("foobar");

**** My questions: I suppose this is a change from jdk 1.4 to 1.5? Doesn't
this make the JSP page container dependent? I think that the naming
convention of a JSP page's class is implementation specific. 

Having an inner class in a JSP page sometimes is pretty convenient for
organizing some light data used in the page, such as menu text. Is there
another alternative other than having a regular class?  

Any input would be appreciated. Thanks.




---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org

Reply via email to