不知道哪里出问题了,用struts2来管理action
然后引入了struts2-spring-plugins.jar。不是自动引入装配service的吗?
到我这就是空指针异常了。。。。
public void setProductService(ProductService productService) {
this.productService = productService;
}
方法名一定要是setProductService,否则出错
我的也一直报这个错,后来发现是没有写@Resource这个东西,加上以后就可以了
<!-- 配置业务层的类 --> <bean id="productServiceBean" class="com.jxust.ssh.service.ProductService"> <property name="productDao" ref="productDaoBean"/> </bean> <!-- 配置dao层的类 --> <bean id="productDaoBean" class="com.jxust.ssh.dao.ProductDao"> </bean>
如果非要注入的方式的话
<package name="default" namespace="/" extends="struts-default"> <action name="product_*" class="productActionBean" method="{1}"> <result name="index">index.jsp</result> </action > </package>
<!-- 配置Action 的类 --> <bean id="productActionBean" class="com.jxust.ssh.action.ProductAction"> <property name="produceService" ref="productServiceBean"></property> </bean>
struts.xml里action的class应写成spring里对应bean的id 。只有这样spring容器才会自动的将papermanager注入
/** * 保存商品的执行的方法:save */ public String save(){ ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml"); ProductService productService=(ProductService)context.getBean("productService"); System.out.println("Action中的save方法执行了......"); productService.save(product); return NONE; }
把下面这段注释或删掉
/* //Structs和spring整合过程中按名称自动注入的业务层类 * 不能自动呢注入 private ProductService produceService; public void setProduceService(ProductService produceService) { this.produceService = produceService; }*/
我遇到了这个问题 我最后发现是差个jar 包 导入之后 就解决了 struts2-spring-plugin-2.3.15.3.jar
求这个问题啊
同求这个问题啊啊啊啊啊啊
是因为这个文件未被实例化 意思就是你的自动注入没起效果,可以手动实例化 不用在spring配置文件里面进行配置
同样的问题,不是拼写错误,如果直接实例化是可以的 。但是用spring注入的方式就会报这个错误,检查了好几遍 配置都是一样的,还是不知道错误在哪儿。
我也遇到同样的问题了,但是不是你那里拼写错误的问题
搞了好久,已解决了。
单词拼写错误. productServive, 应该改成productService。
就一个字母写错了,我以哭瞎。。。