我正在通过JSP实现一个购物网站。我有一个名为ShoppingCart
的Java对象和一个名为Item的对象。在ShoppingCart
中有一个包含Item对象的向量。我的想法是当我调用addItem()
方法时,我使用: -
cart.addItem(name, image, price, details);
确保ShoppingCart已声明已: -
ShoppingCart cart = new ShoppingCart("file_path_to_file");
,addItem
的内容是: -
public void addItem(String name, String image, String price, String detail) throws IOException
{
items.add(new Item(name, image, price, detail));
this.saveMe();
}
其中items是向量。这很好用绝对。但是,我现在创建了一个名为clear的新方法: -
public void clear() throws IOException
{
items.clear();
this.saveMe();
}
saveMe方法只保存到Object文件: -
private void saveMe() throws IOException
{
FileOutputStream fos = new FileOutputStream(this.filename);
ObjectOutputStream oos = new ObjectOutputStream(fos)
oos.writeObject(this.items);
oos.close();
}
当我使用以下方法调用clear方法时: -
cart.clear();
我收到错误消息: -
jsp文件中的第108行:/project/cart.jsp发生错误 对于ShoppingCart类型
,方法clear()未定义
任何人都可以帮我解决这个问题吗?
答案 0 :(得分:3)
如果新添加了该方法并且您收到此错误,那么您显然仍在使用类路径中缺少该方法的旧版本的类。您需要保存源代码文件,重新编译/重建类/项目,重新部署项目并重新启动服务器以使新更改生效。
有点像样的服务器插件的IDE会自动地做到这一点。
答案 1 :(得分:1)
尝试(重新)编译代码,将其部署到服务器,然后打开.jsp页面。每次在java代码中进行更改时都要这样做,而不是html代码。
Java不是interpreted language,而是一种编译的编程语言,其程序在执行之前会转换为可执行的形式。
答案 2 :(得分:0)
我只是在Eclipse中遇到一个非常类似的问题。我取消选择“Project-> Automaticallymatically”选项,然后点击“Project-> Clean”并清理项目,但错误不会消失。最后,在单击“Project-> Clean”后弹出的对话框中,我取消选择“立即开始构建”选项并进行清理。
然后它最终“真正”清理了项目并清除了错误。然后我开始构建,一切都很好。
有一次,我已经注意到有问题的行并保存了, Eclipse仍在报告该行的错误!!! 我不知道这是Eclipse错误还是底层错误工具链错误,但绝对不是写东西。
这是Eclipse Helios Service Release 2和Java SE 6目标。在Windows XP下运行。