I can't help with the inner class issue other than to say that perhaps you should move away from using inner classes in JSP totally. I don't understand how you are using these inner classes, could you please explain?
On Sat, Jan 24, 2009 at 1:32 PM, Qiao Jin <bra...@gmail.com> wrote: > **** 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 > >