spring整合struts2时action的service注入不进来,报空指针异常,纠结了很久,求大神帮忙,解决了加分。 10
异常如图:struts.xml文件:<struts><constantname="struts.objectFactory"value="spring"></consta...
异常如图:
struts.xml文件:
<struts> <constant name="struts.objectFactory" value="spring"></constant> <constant name="struts.i18n.encoding" value="utf-8"></constant>
<package name="firstPackage" extends="struts-default"> <!-- 此处的action应该和applicationContext.xml中配置的action保持一致 --> <action name="login" class="loginAction" method="execute"> <result name="SUCCESS">/WEB-INF/jsp/homepage.jsp</result> <result name="ERROR"> /WEB-INF/jsp/login.jsp </result> </action> </package>
</struts>
applicationContext.xml文件:
<!-- 省略datasource和sessionFactory配置 --> <!-- 第一步,配置DAO支持类,引入HibernateTemplate --> <bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate" scope="prototype"> <property name="sessionFactory" ref="sessionFactory"></property> </bean> <bean id="blogLoginInfoDao" class="com.ssh.dao.BlogLoginInfoDao" scope="prototype"> <property name="sessionFactory" ref="sessionFactory"></property> </bean> <!-- 第二步,配置service --> <bean id="loginInfoService" class="com.ssh.service.impl.BlogLoginInfoServiceImpl" scope="prototype"> <property name="blogLoginInfoDao" ref="blogLoginInfoDao"></property> </bean> <!-- 第三步,配置action --> <bean id="loginAction" class="com.ssh.action.LoginAction" scope="prototype"> <property name="blogLoginInfoService" ref="loginInfoService"></property> </bean>
LoginAction.java主要代码如下:
jsp页面提交时能正确接收到userName和passWord参数,但执行到第19行时前台就报空指针异常,其它配置应该都没问题。 展开
struts.xml文件:
<struts> <constant name="struts.objectFactory" value="spring"></constant> <constant name="struts.i18n.encoding" value="utf-8"></constant>
<package name="firstPackage" extends="struts-default"> <!-- 此处的action应该和applicationContext.xml中配置的action保持一致 --> <action name="login" class="loginAction" method="execute"> <result name="SUCCESS">/WEB-INF/jsp/homepage.jsp</result> <result name="ERROR"> /WEB-INF/jsp/login.jsp </result> </action> </package>
</struts>
applicationContext.xml文件:
<!-- 省略datasource和sessionFactory配置 --> <!-- 第一步,配置DAO支持类,引入HibernateTemplate --> <bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate" scope="prototype"> <property name="sessionFactory" ref="sessionFactory"></property> </bean> <bean id="blogLoginInfoDao" class="com.ssh.dao.BlogLoginInfoDao" scope="prototype"> <property name="sessionFactory" ref="sessionFactory"></property> </bean> <!-- 第二步,配置service --> <bean id="loginInfoService" class="com.ssh.service.impl.BlogLoginInfoServiceImpl" scope="prototype"> <property name="blogLoginInfoDao" ref="blogLoginInfoDao"></property> </bean> <!-- 第三步,配置action --> <bean id="loginAction" class="com.ssh.action.LoginAction" scope="prototype"> <property name="blogLoginInfoService" ref="loginInfoService"></property> </bean>
LoginAction.java主要代码如下:
jsp页面提交时能正确接收到userName和passWord参数,但执行到第19行时前台就报空指针异常,其它配置应该都没问题。 展开
6个回答
展开全部
第19 行出现空指针
且19行返回的类型 为boolean类型。只有true和false
这就说明了前台传过来的 用户名 和 密码 有一个 为null或2个都为 null,看看 用户名和密码
为什么为null
追问
不是用户名和密码的问题,用户名和密码都正确,debug追踪到是注入的blogLoginInfoService为null
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
action层19行代码报错,报空指针,你19行的代码应该是这种形式的【servive.具体实现类(参数)】,应该就是这个参数没有值,不信你debug下~~
更多追问追答
追问
debug时,参数userName,passWord都有值,都能正确接收,blogLoginInfoService为null,没有注入成功。
追答
那你检查下Spring的配置文件,blogLoginInfoService这个get,set没有?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
service封装了么?
更多追问追答
追问
已经封装了,只要执行到blogLoginInfoService时就报异常,根本没进入到下面的代码。
追答
你debug一下, 看看userName和passWord中是否有值。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你将配置action那个配置的作用域 改为 request试试
追问
试了下,还是不行,一样的空指针异常
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
把你的报错信息贴出来
追问
看题目啊,早就贴出来了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询