1.service为null的情况一般有几种情况:spring的配置文件没有配置;依赖注入由于写的不仔细而没有实现注入等原因。首先检查是否在spring的配置文件中注入了你想要的service如果有,检查是否因为大小写的小错误而不能实现注入。
2.可以在action的这样处理:
让action继承一个自己编写的BaseAction 在让BaseAction去继承DispatchAction 在BaseAction中实现service的获取
public class BaseAction extends DispatchAction{
protected Object getBean(String id){
WebApplicationContext context = WebApplicationContextUtils.getWebApplicationContext(this.servlet.getServletContext());
return context.getBean(id);
}
}
然后在你的action中就可以直接通过方法得到你想要的service。
IService service = (IService) getBean("你想要的service");
你就可以用service调用你的CRUD方法执行了!
这里主要用到的是spring的DI(依赖注入)spring的核心之一!
使用ssh的时候,service实例是不需要自己new 的.而是交由spring管理,并注入.你只要写istaffService和istaffService的setter方法,到时候spring 会帮你注入实例.
缺少一个 jar 包 ,缺少 struts-spring-plugin 的插件包。如果Action 类要依赖spring注入,就必须加入这个 jar 包
这不是报service是null
StaffService.findByExample(StaffService.java:27)
说的是StaffService的第27行抛了NullPointerException, 你看看那行的代码
那就是Service接口没有注入进去.spring没有管到.再查查看.