【求助】Servlet里面一调用Dao里的某个方法就出错!
在Action里面使用Dao中的方法就没错。
方法是同一个。
程序用的主要是Struts,因为要涉及到二级联动的问题。
而且数据都要从数据库中读出的,
所以我在Struts里用servlet来实现,
但是在servlet里,我调用Dao的方法查询数据库里的数据的时候,
public List<Discipline> findbyid(int id){
List<Discipline> list = null;
sql = "select * from Discipline where Dis_AcademyID = "+id+"";
try {
list = jdbcTemplate.queryForList(sql);
} catch (Exception e) {
e.printStackTrace();
return null;
}
return list;
}
每次执行到list = jdbcTemplate.queryForList(sql);这一步就提示
空指针错误。
(在Action里执行时没有出错)
真是郁闷了,琢磨了半天也没整明白到底是什么情况。
所以来到贵吧,希望各位大神帮帮忙,谢谢。
最好能加我QQ:710801527
详聊。
------解决方案--------------------
你这样做必须不行啊,行就有鬼了!你还是那个问题,你在servlet里new这个action,那么你action的对象就不再是spring管理的,而是你自己管理的,spring就不能给action注入jdbcTemplate了啊!
你让spring帮你管理action是因为你加里一个包:struts2-spring-plugin,有这个包才能做到,那么如果你想让spring帮你管理servlet对象,也一样,加一个servlet和spring兼容的插件包,不过提前说明,这个我没试过,只是在我印象中有这么一个插件包。你搜一下看看有没有吧。
另外,如果你想通过你刚才的方式来做的话,你可以在servlet里调用action的方法只不过调用的使用不要去new那个action,你可以从spring的applicationContext里去拿,这样spring就可以成功注入了