我正在eclipse中开发一个应用程序,使用Spring和hibernate在网页中显示数据库表。以下是我的DAO文件。
package net.codejava.spring.dao;
import java.util.List;
import net.codejava.spring.model.Employee;
public interface EmployeeDAO {
public List<Employee> list();
}
我创建的控制器是
package net.codejava.spring.controller;
import java.io.IOException;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
import antlr.collections.List;
import net.codejava.spring.dao.EmployeeDAO;
import net.codejava.spring.dao.*;
public class HomeController {
private EmployeeDAO employeeDAO;
@RequestMapping(value="/")
public ModelAndView listEmployee(ModelAndView model) throws IOException{
List<Employee> listEmployee = EmployeeDAO.list();
model.addObject("listEmployee",listEmployee);
model.setViewName("ome");
return model;
}
}
现在它在我的控制器中显示一条错误消息,如&#34;无法对类型为EmployeeDAO&#34;的非静态方法列表()进行静态引用。
如何解决这个问题?
提前致谢
答案 0 :(得分:0)
您应该在控制器中注入EmployeeDAO
@Autowired
注释。
最好定义服务层并在控制器中使用它。我想你应该有更多关于图层的信息。见this
@Autowired
private EmployeeDAO employeeDAO;
@RequestMapping(value="/")
public ModelAndView listEmployee(ModelAndView model) throws IOException{
List<Employee> listEmployee = employeeDAO.list();
model.addObject("listEmployee",listEmployee);
model.setViewName("ome");
return model;
}
答案 1 :(得分:0)
您可以在自动连接参考中使用2路方式使用Dao类来在控制器中创建对象。
@Autowired
private EmployeeDAO employeeDAO;
否则在dao类中使用静态方法。