commonDao extends SqlMapClientDaoSupport {
public
return this.getSqlMapClientTemplate().queryForObject(statementName,t);
}
/**
* ������������ѯObjectList
* @param statementName
* @param t
* @return
*/
public
return this.getSqlMapClientTemplate().queryForList(statementName, t);
}
/*
* ��ѯ����
*/
public
return this.getSqlMapClientTemplate().queryForList(statementName);
}
/**
* ɾ��
* @param statementName
* @param t
* @return ����ɾ��ļ�¼��Ŀ
*/
public
return this.getSqlMapClientTemplate().delete(statementName, t);
}
/**
* ����
* @param statementName
* @param t
* @return
*/
public
return (Long) this.getSqlMapClientTemplate().insert(statementName, t);
}
/**
* ����
* @param statementName
* @param t
*/
public
this.getSqlMapClientTemplate().update(statementName, t);
}
public List selectNewsByServId(Long servId,int pageNum,int pageSize)throws SQLException{
SqlMapClientTemplate sqlMapClient = null;
List list = sqlMapClient.queryForList("showNewsListInation",servId,pageNum,pageSize);
return list;
}
}
我有一个接口BaseService提供一些公用方法(里面暂时没什么方法,空的)和实现类BaseServiceImp,这个接口提供一些公用方法(暂时没有方法,只是注入了BaseDao),其余Service继承这个BaseService。
//在BaseServiceImpl内注入BaseDaopublic class BaseServiceImpl implements BaseService{
public class UserServiceImpl extends BaseServiceImpl implements UserService
运行时能正确接收userName和passWord两个JSP页面提交的参数,debug了下,UserAction里面的userService为null,而且写了个类测试了下,都能取到applicationContext.xml文件里面的各个bean,而且bean的getXXX,setXXX方法都能正确执行
//单元测试
ApplicationContext atx=new ClassPathXmlApplicationContext("applicationContext.xml");
LoginService userService=(UserService)atx.getBean("userIService");
userService.login(user);
//userService.add(user);
单元测试login、add等方法都通过。
问题:当我在action中通过userService调用方法时,报空指针异常,断点发现是baseDao== null(userService==null),并未注入进去。
找了半天 网上说检查set方法、 xml配置啊什么的都没有问题;最后实在没办法想到看看包有没有问题,果然发现没有spring-struts-plugin这个包,
没有这个包spring怎么帮你管理struts的相关事物啊,也就没法自动注入了,这妹子真坑啊,最后成功帮她解决了问题。
关于这个包是干什么的,spring、struts2整合时用到的,大概就是struts的一些事物交给spring管理吧,至于细节自己查吧。