ssh 注入了bean 但是取值为null

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ssh 注入了bean 但是取值为null相关的知识,希望对你有一定的参考价值。

application.xml中的部分配置:
<!--配置 Hibernate Template -->
<bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate">
<property name="sessionFactory">
<ref bean="sessionFactory" />
</property>
</bean>

<!-- 配置student的相关业务bean -->

<bean id="StuDAO" class="com.haitu.dao.StuDAO">
<property name="hibernateTemplate">
<ref local="hibernateTemplate" />
</property>
</bean>
<bean id="StuService" class="com.haitu.service.StuService" >
<property name="StuDAO">
<ref bean="StuDAO"></ref>
</property>
struts中的配置:
<struts>
<constant name="struts.ognl.allowStaticMethodAccess" value="true" />
<package name="student" extends="struts-default">

<action name="addStudent" class="com.haitu.action.StudentAction" method="addStudent">
<result name="success">index.jsp</result>
<result name="error">error.jsp</result>
</action>
</package>
</struts>
public class StudentAction extends ActionSupport

private Stu stu;
private StuService service;

@Override
public String execute() throws Exception
// TODO Auto-generated method stub

return super.execute();

action中的配置:
public String addStudent()

System.out.println("this is service11111.................."+this.service);

boolean res=service.addStudent(stu);

if(res)

return ActionSupport.SUCCESS;
else
return ActionSupport.ERROR;



public Stu getStu()
return stu;


public void setStu(Stu stu)
this.stu = stu;


public StuService getService()
return service;


public void setStuService(StuService service)
this.service = service;
System.out.println("this is service.................."+service);




</bean>
<bean id="StudentAction" class="com.haitu.action.StudentAction">
<property name="StuService" >
<ref bean="StuService" ></ref>
</property>
</bean>

启动服务器是后台输出:this is service..................com.haitu.model.StuService@1d978ea

执行addStudent方法时this is service11111..................null
service为空,导致空指针异常。

要是将action交给ioc容器,你就不需要在struts配置文件里,对应的action处指定class属性追问

那怎么知道 当前请求用哪个类的方法来处理

追答

spring配置文件

struts配置文件

index.jsp
error.jsp

注意struts里 相关action中 class属性的写法, 等同于此action在spring配置文件中的id

参考技术A 那是说明根本都没有注入进去!追问

那是为什么没注入进去呢

追答

看看你的服务器的日志,是否有一些记录,或者控制台报错了没有,这些信息很重要。
单凭说没有注入类,我也确实不好判断是什么地方出错了。
或者看看是否是数据库没连接上,还是什么原因,这个应该还是挺简单的
good luck

activiti中实现TaskListener注入Spring的bean

一开始我写的bpmn中

技术图片

 然后在我的监听器中注入的Spring的bean为空,注入不进来。

技术图片

像这样,tenderService为null 注入不了。

 

此时需要把bpmn中这样设置,sendDocumentStartListener是监听器的类名(在这里首字母要小写)

技术图片

监听器里要这么写(注意要加上@Component注解)

技术图片

此时就可以注入Spring的bean了

以上是关于ssh 注入了bean 但是取值为null的主要内容,如果未能解决你的问题,请参考以下文章

springBoot Interceptor拦截器注入mapper 为null

spring springboot websocket 不能注入( @Autowired ) service bean 报 null 错误

解决SpringBoot中webScocket不能注入bean的问题

使用 Spring 注入 bean 时出现 nullPointerException

spring bean注入报空指针null,但set设值时对象是存在的,而且只是部分方法报空指针

spring bean重复定义不报错以及注入失败分析