public class AdminAction {
private  AdminService adminService;
private  Admin entity;
public Admin getEntity() {
return entity;
} public void setEntity(Admin entity) {
this.entity = entity;
}
public String getAdminInfo(){
//entity=//在方法中需要设置参数
// System.out.print("enter");
// Integer count=adminService.getAllCount();
//AdminService adminService=new AdminService();
adminService.getAllCount();
return "getInfo";
} public AdminService getAdminService() {
return adminService;
} public void setAdminService(AdminService adminService) {
this.adminService = adminService;
}
}
里面getAdminInfo被前台的url调用时,adminService为空,里面的方法无法访问,adminService没有被spring注入进去@Transactional
public class AdminService { private AdminDao adminDao;
public AdminDao getAdminDao() {
return adminDao;
}
public void setAdminDao(AdminDao adminDao) {
this.adminDao = adminDao;
}

public void ModifyPassword(String id,String newPassword){
Admin admin=new Admin();
admin.setAdminId(id);
admin.setAdPassword(newPassword);
adminDao.update(admin);
}

public Admin getEntity(String id){
return adminDao.getObject(id);
}

public void updateInfo(){
//adminDao.update(object);
}

public Integer getAllCount(){
return adminDao.countAll("admin");
}
}
这是我的service <!--service 注入  -->
<bean id="AdminService" class="ccbupt.pms.service.AdminService">
<property name="adminDao" ref="AdminDao"></property>
</bean>
<!--end service注入 -->

<!--Action 注入  -->

  
<bean id="adminAction" class="ccbupt.pms.action.admin.AdminAction">
<property name="adminService" ref="AdminService"/>
</bean>
这是applicationContext文件spring

解决方案 »

  1.   

    <bean id="adminAction" class="ccbupt.pms.action.admin.AdminAction">
    换成
    <bean name="adminAction" class="ccbupt.pms.action.admin.AdminAction">
    试试!
    还有检查下你Service里面的adminDao有没有被注入
      

  2.   

    看看adminDao注入有没有问题吧
      

  3.   

    adminDao注入方式和service一样,#1改完没用。
      

  4.   

    adminDao也没有 被注入进去,new了一个adminService实验后,adminDao也是空的。
      

  5.   

    #5  启动时没有错误,
    defining beans [myDataSource,sessionFactory,txManger,org.springframework.aop.config.internalAutoProxyCreator,org.springframework.transaction.annotation.AnnotationTransactionAttributeSource#0,org.springframework.transaction.interceptor.TransactionInterceptor#0,org.springframework.transaction.config.internalTransactionAdvisor,SimpleDao,AdminDao,CreProDao,GraProDao,PraProDao,Sec_adminDao,StudentDao,TeacherDao,AdminService,adminAction]; root of factory hierarchy
    应该是实例化了,但是调用时不知为什么都为空了。
      

  6.   

    要规范,bean的id第一个字母要小写,spring是面向接口编程的。注入的应该是接口的类。对于的class是实现类。
      

  7.   

    #7 我的service,dao中的方法都是在类里直接写的并不是implements于接口,这是不是我没能注入成功的原因。
      

  8.   

    真没看懂你的怎么调用到AdminAction 这个类的,没有extends等吗
      

  9.   

    检查下你的web.xml 看看有没有配置applicationContext
      

  10.   

    你的框架应该用是struts跟spring整合的吧? 貌似struts每次调用的时候会new一个action对象 而不是使用spring中的bean的!你可以写个action中写个无参构造函数 看看!
      

  11.   

    你的dao没有创建bean 
    <!--dao注入  -->
     <bean id="adminDao" class="ccbupt.pms.dao.AdminDao">
     <property name="adminDao" ref="adminDao"></property> 这个地方的大小写要跟创建的bean一致
     </bean>
     <!--end dao注入 -->
     
    <!--service 注入  -->
     <bean id="adminService" class="ccbupt.pms.service.AdminService">
     <property name="adminDao" ref="adminDao"></property> 这个地方的大小写要跟创建的bean一致
     </bean>
     <!--end service注入 --> <!--Action 注入  -->   
     <bean id="adminAction" class="ccbupt.pms.action.admin.AdminAction">
     <property name="adminService" ref="adminService"/> 这个地方的大小写要跟创建的bean一致
    </bean>
    bean创建的id开头都用小写 
     
      

  12.   

    dao的bean创建了,没有列出来。