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
>
>

Reply via email to