Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/396.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 部署JSP期间无法解决符号错误_Java_Jsp_Jspinclude - Fatal编程技术网

Java 部署JSP期间无法解决符号错误

Java 部署JSP期间无法解决符号错误,java,jsp,jspinclude,Java,Jsp,Jspinclude,我刚刚学习了基本的servlet和JSP技术,正在使用它设计一个简单的网站 该网站的目的是销售产品。产品的详细信息存储在数据库中。我想从数据库中检索数据并显示动态页面。我正在使用MVC方法,并尽我所能使其成为面向对象的 我面临着分类页面的问题(该页面旨在作为各种产品的索引…我想检索存储在DB中的分类并显示它们) 详情如下: 我创建了一个表示表的简单java类。表的名称在DB中是“Categories”…这个类被命名为CategoryTable,包含表示表的各种属性的实例字段 名为Category

我刚刚学习了基本的servlet和JSP技术,正在使用它设计一个简单的网站

该网站的目的是销售产品。产品的详细信息存储在数据库中。我想从数据库中检索数据并显示动态页面。我正在使用MVC方法,并尽我所能使其成为面向对象的

我面临着分类页面的问题(该页面旨在作为各种产品的索引…我想检索存储在DB中的分类并显示它们)

详情如下:

  • 我创建了一个表示表的简单java类。表的名称在DB中是“Categories”…这个类被命名为CategoryTable,包含表示表的各种属性的实例字段

  • 名为CategoryRetriever的POJO充当我的模型。它将表中特定行的数据插入到CategoryTable对象中,并最终创建各种CategoryTable对象的ArrayList。此ArrayList包含所有检索到的数据

  • 设计的控制器是一个Servlet名称CategoryController。它创建CategoryRetriever的对象并将其传递给名为CategoryDisplayer的JSP

  • 一切都很好。除了JSP。使用WEBLOGIC部署后。jsp给出了以下错误

  • G:\bea\weblogic81\server\bin。\myserver.wlnotdelete\extract\myserver\u MiniProject\u build\jsp\u servlet\u categorydisplayer.java:173:无法解析符号:类 类别表位置:类 jsp_servlet.__类别显示层 CategoryTable tp=(CategoryTable)categoryContent.get(i); //[/CategoryDisplayer.jsp;行:35] ^

    由此我可以推断,直接位于根项目目录下的JSP找不到根>>WEB-INF>>源中的CategoryTable类

    我的JSP需要include语句还是什么?如果是,怎么做

    。。。找不到根>>WEB-INF>>源中的CategoryTable类…
    我想你指的是WEB-INF/classes文件夹

    我的JSP是否需要include语句或其他什么……如果需要,如何实现?
    对要导入缺少的类,请执行以下操作:

    <%@ page import="CategoryTable" %>
    

    乍一看,这是因为您没有将类放入包中。无Packageless类在上的包内的其他类中不可见/不可导入。JSP文件即被编译并转换为扩展
    JspServlet
    的类,该类被放在servletcontainer特定的包中。从那里,它无法查看/导入无包类

    每当您希望能够在其他地方重用/导入类时,总是将其放入包中

    例如



    请注意,无packageless servlet将在特定配置(例如ApacheTomcat)中的特定版本的特定ServletContainer上工作,但这不是避免在包中放置类的有效方法


    这就是说,这表明您正在JSP文件中使用scriptlet。这是个坏习惯。与其使用servlet为JSP准备数据,不如使用像JSTL这样的标记库来控制JSP页面中的流,并使用EL(表达式语言,那些
    ${}
    东西)来访问后端数据

    另见

    更新:既然您提到使用记事本/cmd,我只想强调Saheed more的答案:您不应该将类(
    *.class
    )文件与源(
    *.java
    )文件放在同一文件夹中,而是放在
    /WEB-INF/classes
    中。使用上述包示例时,类应放置在以下位置:

    • /WEB-INF/classes/com/shahensha/model/Category.class
    • /WEB-INF/classes/com/shahensha/dao/CategoryDAO.class
    • /WEB-INF/classes/com/shahensha/controller/CategoryController.class

    如果您使用的是IDE,它将负责自动编译和构建。

    我必须指定路径吗?只要您的类文件(例如CategoryTable.class)直接位于WEB-INF/classes中,那么它应该在WebLogic使用的应用程序类路径中可用。当然,如果CategoryTable在包com.example.CategoryTable中,那么您需要确保:(1)您的导入变为:(2)文件:WEB-INF/classes/com/example/CategoryTable.class存在。类文件直接位于WEB-INF/classes中。。。所以你用我得到以下错误。。。G:\bea\weblogic81\server\bin\ \myserver\.wlnotdelete\extract\myserver\u MiniProject\u build\jsp\u servlet\u categorydisplayer.java:18:'.'应为导入类别表//[/CategoryDisplayer.jsp;第8行]^您能在这里运行示例吗?:小心使用roseindia.net。为了避免误会和错误的答案:您是在使用Eclipse/Netbeans/IntelliJ这样的IDE,还是在记事本和命令提示符中“普通”地使用IDE?
    package com.shahensha.model;
    
    public class Category {}
    
    package com.shahensha.dao;
    
    public class CategoryDAO {}
    
    package com.shahensha.controller;
    
    public class CategoryController extends HttpServlet {}