首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

[]struts2整合spring,无法注入service

2012-06-12 
[求助]struts2整合spring,无法注入service提交请求时候报错无法获得到service,始终为NullapplicationConte

[求助]struts2整合spring,无法注入service
提交请求时候报错
无法获得到service,始终为Null

applicationContext.xml配置文件

XML code
<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.xml
XML code
<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>


web.xml
XML code
<!-- 加载时加载所有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>



Action代码
Java code
 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;    }}


[解决办法]
lz
applicationContext.xml配置文件中
我看不懂你的class里的写法。是命名问题。还是写错啦。下边是我你参考下把
<bean id="depthnewsDao" class="org.myledu.dao.impl.DepthnewsDaoImpl">
//class="里是你实现接口dao的DaoImpl类"
<property name="sf" ref="sessionFactory" />


</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>

热点排行