struts中调用接口时候的Cannot make a static reference to the non-static method问题

用struts想实现一个注册的功能,注册成功就跳转到success的页面,失败就跳回到注册页面写了一段DAO:publicinterfaceAddStudentDAO{p... 用struts想实现一个注册的功能,注册成功就跳转到success的页面,失败就跳回到注册页面
写了一段DAO:
public interface AddStudentDAO {

public boolean addStudent(AddStudentForm studentForm);

}

实现DAO的方法:
public class Student implements AddStudentDAO {

@Override
public boolean addStudent(AddStudentForm studentForm) {

return false;
}

}

action的代码:
public class AddStudentAction extends Action {

@Override
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {

//转型
AddStudentForm addStudentForm=(AddStudentForm)form;

//调用接口
AddStudentDAO student=new AddStudentDAO();
boolean successful=false;
successful=AddStudentDAO.addStudent(addStudentForm);
//关键字
String returnURLKeyWord = "addFailure";
if(successful == true){
returnURLKeyWord = "addSuccess";
}

return mapping.findForward(returnURLKeyWord);
}

}

调用接口部分报错,我是按教学视频中来的,视频中DAO这个接口实例化了。。。
如果我把
//调用接口
AddStudentDAO student=new AddStudentDAO();
boolean successful=false;
successful=AddStudentDAO.addStudent(addStudentForm);
改成
Student student=new Student();
boolean successful=false;
successful=AddStudentDAO.addStudent(addStudentForm);

最后的那行successful=AddStudentDAO.addStudent(addStudentForm)还是报错,
Cannot make a static reference to the non-static method

如果在Student类中把addStudent方法变成static的,那又会提示
Illegal modifier for the interface method addStudent; only public & abstract are permitted

大家指点指点
展开
 我来答
百度网友1830aac
2012-02-08 · 超过33用户采纳过TA的回答
知道答主
回答量:137
采纳率:0%
帮助的人:100万
展开全部
楼上回答的不知所以!
AddStudentDAO是接口,不能被实例化,变量引用也不对!下面是我给你改的。
劝楼主一句话,忠言逆耳:还是先学好j2se基础再学框架吧。

@Override
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {

//转型
AddStudentForm addStudentForm=(AddStudentForm)form;

//调用接口
AddStudentDAO student=new Student();
boolean successful=false;
successful=student.addStudent(addStudentForm);
//关键字
String returnURLKeyWord = "addFailure";
if(successful == true){
returnURLKeyWord = "addSuccess";
}

return mapping.findForward(returnURLKeyWord);
}
hanliwoyaoai
2012-02-08 · TA获得超过416个赞
知道小有建树答主
回答量:593
采纳率:0%
帮助的人:460万
展开全部
这种应该是java基础
AddStudentDAO.addStudent(addStudentForm)
类名.方法名 这种要求方法是该类的静态方法
studentDao..addStudent(addStudentForm)
实例.方法名 方法可以静态可以是普通的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
tan4856423
2012-02-08 · TA获得超过170个赞
知道小有建树答主
回答量:241
采纳率:100%
帮助的人:203万
展开全部
AddStudentDAO你的这个接口里面没有定义那个类,你定义一下即可调用。实现类里面的必须在接口里面也存在,否则不能调用。
更多追问追答
追问
你是说在DAO定义它的实现类Student么?
实现类里面的必须在接口里也存在是指接口里面那个方法吗?方法是存在的呀
不懂了,还请指点下 谢谢
追答
你加qq:940550940,我帮你看下。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式