[求助]struts2整合spring,无法注入service
提交请求时候报错
无法获得到service,始终为Null
applicationContext.xml配置文件
<bean id="UserInfoDAO" class="test.dao.impl.UserInfoDAO" scope="prototype"> <property name="sessionFactory"> <ref bean="sessionFactory" /> </property> </bean> <!-- 业务逻辑层注入 --> <bean id="UserInfoService" class="test.service.impl.UserInfoService" scope="prototype"> <property name="userInfoDAO" ref="UserInfoDAO" /> </bean> <!-- Action注入 --> <bean id="userAction" class="test.action.UserInfoAction" scope="prototype"> <property name="userService" ref="UserInfoService"/> </bean>
<struts> <constant name="struts.objectFactory" value="spring" /> <constant name="struts.devMode" value="false" /> <include file="example.xml"/> <package name="default" namespace="/" extends="struts-default"> <action name="userAction" class="userAction"> <result name="success">/showAll.jsp</result> </action> </package> <!-- Add packages here --></struts>
<!-- 加载时加载所有spring配置文件 --> <context-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/applicationContext.xml</param-value> </context-param> <!-- 拦截器 拦截客户所有请求 --> <filter> <filter-name>struts2</filter-name> <filter-class> org.apache.struts2.dispatcher.FilterDispatcher </filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list>
public class UserInfoAction extends ActionSupport{ private UserInfoService userService; private UserInfo user; @Override public String execute() throws Exception { if(userService.getUserInfoByName(user)) { System.out.println("成功"); return SUCCESS; } return null; } public UserInfo getUserInfo() { return user; } public void setUserInfo(UserInfo user) { this.user = user; } public void setUserService(UserInfoService userService) { this.userService = userService; }}
</bean>
<bean id="depthnewsService" class="org.myledu.service.impl.DepthnewsServiceImpl">
//class="里是你实现接口Service的ServiceImpl类"
<property name="depthnewsDao" ref="depthnewsDao"/>
</bean>
[解决办法]
注入的配置没有错,至于user,我觉得肯定是前台过来的,应该不是空,即便为空,action也不会报错
我觉得,是你启动的时候没读取applicationContext.xml文件吧
web-inf下的东西不能被读取到吧,你尝试把applicationContext换个位置,放到src跟目录下
这个位置改成下面的
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:applicationContext.xml</param-value>
</context-param>