当前位置:编程学习 > JAVA >>

请问为什么我在非action的类中使用spring自动装配的dao会出现NullPointerException?

--------------------编程问答-------------------- CatagoryTest catagoryTest = new CatagoryTest();
LZ自己新建的对象,LZ要自己把catagoryDao对象设置进去。即后面加
catagoryTest.setCatagoryDao(catagoryDao); --------------------编程问答-------------------- @Repository
public class CatagoryAction extends ActionSupport {
    @Resource
    private Catagory catagory; --------------------编程问答-------------------- 不要用new CatagoryTest(),自己new 的对象,spring是不会自动出入依赖的。可以用applicationcontext.getBean获取受spring管理的实例。
从楼主的代码来看,更简单的就是直接在CatagoryAction中autoware一个CatagoryTest实例就好了 --------------------编程问答-------------------- 你的错误信息看不到!
这个CatagoryTest也是个action,只是有点疑问:
struts2的配置文件(xml)中需要配类似下面的吗?
<action name="viewTest" class="com.catagory.bean.CatagoryTest" method="run">
     <result name="success">${request.contextPath}/catagory/view.jsp</result>
</action>



--------------------编程问答-------------------- <action name="viewTest" class="com.catagory.bean.CatagoryTest" method="run">
  <result name="success">${request.contextPath}/catagory/view.jsp</result>
</action>
一般情况下当struts2和spring整合的时候,struts2的配置文件中action的class属性应该是一个虚拟的class,而不是一个真正的路径地址,真正的action实例是在spring的配置文件中生成的。

应该是这样吧:
struts的配置文件:
<action name="viewTest" class="catatoryTest" method="run">
  <result name="success">${request.contextPath}/catagory/view.jsp</result>
</action>
Spring的applicationContext.xml:
<bean name="catatoryTest" class="com.catagory.bean.CatagoryTest">
    在这里注入dao
</bean>
补充:Java ,  Java EE
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,