日期:2014-05-20  浏览次数:21335 次

ssh2项目,表单提交到业务层时JSP报空指针错,请问都有哪些原因造成的?
望高手解惑,

exception 

javax.servlet.ServletException: java.lang.NullPointerException
org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:515)
org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:422)


root cause 

java.lang.NullPointerException
user.action.LoginAction.execute(LoginAction.java:40)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:597)



------解决方案--------------------
user.action.LoginAction.execute(LoginAction.java:40) 

这个ACTION的40行引用了空对象
------解决方案--------------------
无论何时何地,引发空指针异常的原因基本只有“向一个指向null的对象引用发送消息(调用其方法)”这一个。而这个对象为何为null,原因就很多了,比如楼主从数据库查出一个对象,未经判断是否为null就用了起来,或是spring配置错误,导致某些组件的实例没有被注入到需要的地方,引用时自然会出错。
------解决方案--------------------
探讨
无论何时何地,引发空指针异常的原因基本只有“向一个指向null的对象引用发送消息(调用其方法)”这一个。而这个对象为何为null,原因就很多了,比如楼主从数据库查出一个对象,未经判断是否为null就用了起来,或是spring配置错误,导致某些组件的实例没有被注入到需要的地方,引用时自然会出错。

------解决方案--------------------
3楼说得很对呀,只能看到代码,才能确切得告您是什么哪里的问题。。
------解决方案--------------------
private UserDao userDao; 
没有写get,set方法啊
------解决方案--------------------
不要在到页面才发现空指针。。。。。。
在业务逻辑层中就要测试数据。。。。。。。。。。
看数据是否符合你的要求。。。。。。。。。
拿到数据后在朝页面上甩。。OK?
------解决方案--------------------
6楼发现了,
private UserDao userDao;
没有写get,set方法,那么那么spring就不能注入.应该就是这里抛了,可以debug一下.要是不会debug,可以在调用方法的时候,打印出对象就可以发现是否为null了
------解决方案--------------------
探讨
还是不行,帮我看看Spring配置文件,是不是什么地方不合适。