无法解析为某种类型(jsp + eclipse)

Aeg*_*Los 8 java eclipse jsp types

我有一个jsp proyect作为表示层来显示来自java类的函数的结果(一个简单的字符串).该类位于src目录中.

当我尝试运行时,我得到这个错误:

org.apache.jasper.JasperException:无法为JSP编译类:

然后:

解析器无法解析为类型

我的jsp代码是:

<%
        String input="ebnf a{non terminal A;}";
        Symbol tree=null;
        parser p=null;
        InputStream entrada=null;
        analex analizador;
        try{
            entrada=new ByteArrayInputStream(input.getBytes("UTF-8"));
            analizador=new analex(entrada);
            p=new parser(analizador);
            tree=p.parse();
        }catch(Exception e){
            out.println("ERROR");
        }
        finally{}
        out.println("CORRECTO");
        ConDiaCClass cdc=Singleton.getInstance();
        out.println(cdc);
%>
Run Code Online (Sandbox Code Playgroud)

实际上我也遇到了与ConDiaCClass和analex类相同的问题.

我没有用Eclipse创建这些类.它们来自另一个项目,但它们都放在src目录中(java类所在的目录).似乎jsp无法识别它们.

Lui*_*oza 7

您应该在jsp的开头添加必要的import语句.一个样品:

<%@ page import="java.util.List" %>
<%@ page import="yourpackage.parser, yourpackage.analex" %> //and on
Run Code Online (Sandbox Code Playgroud)

建议:使您的类遵循Oracle提出Java代码约定.这是一个很好的指南,可以帮助其他人轻松阅读您的代码(当您想要查看/改进代码时,它会帮助您自己).

  • 不行.我完成了我的进口.我应该说的.抱歉. (2认同)

小智 6

清理项目,然后按如下方式重新加载JRE:Java Build Path - > Libraries - > Add Library - > JRE System Library

  • 只要与问题相关,请随时回答发布的任何问题,无论日期/时间如何/您的答案已为您解决了类似的问题。最终目标是帮助所有程序员,而不仅仅是一个程序员,就像您今天的回答对我有所帮助。OP接受的答案不一定能够解决所有程序员的问题。 (3认同)

Aeg*_*Los 3

最后只是类没有获得可见性属性。我没有它们的公共属性,因此尽管 jsp 知道它们在哪里,但它们无法解析为类型。

这是一个 JFlex/CUP 问题:JFlex 和 CUP 创建没有可见性属性的类(analex 和解析器)。

谢谢您的回答。下次我会尝试更具体地回答我的问题。