用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
大家指点指点

解决方案 »

  1.   

    AddStudentDAO student=new AddStudentDAO(); 
      boolean successful=false;
    successful=AddStudentDAO.addStudent(addStudentForm);
     
    红色部分改成 student
      

  2.   

    AddStudentDAO.addStudent()这只能调用静态static方法,因为调用主体是AddStudentDAO这个类而不是一个类的实例对象。
    而addStudent()不是静态方法,所以报错。
    改用student.addStudent()方法就好了,因为student是这个类的一个实例对象