spring的配置文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<!--UserInfo相关 -->
<bean id="userFinder"
class="com.service.impl.UserFinderImpl"
parent="abstractFinder">
</bean>
<bean id="userService"
class="com.service.impl.UserServiceImpl"
parent="abstractPersistenceSerice">
</bean>
<bean id="AddAction" class="com.action.AddAction">
<property name="userService" ref="userService"></property>
</bean>
<bean id="DelAction" class="com.action.DelAction">
<property name="userService" ref="userService"></property>
</bean>
<bean id="DisplayAction" class="com.action.DisplayAction">
<property name="userFinder" ref="userFinder"></property>
</bean>
<bean id="FindAction" class="com.action.FindAction">
<property name="userFinder" ref="userFinder"></property>
</bean>
<bean id="ModifyAction" class="com.action.ModifyAction">
<property name="userService" ref="userService"></property>
</bean>
</beans>struts2的配置文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN"
"http://struts.apache.org/dtds/struts-2.1.7.dtd">
<struts>
<package name="user" extends="default">
<!-- 用于对同一表单,不同提交按钮的业务 -->
<action name="AddAction" class="com.action.AddAction" method="post">
<result name="success">/success.jsp</result>
<result name="failed">/failed.jsp</result>
</action>
<action name="DelAction" class="com.action.DelAction" method="post">
<result name="success">/index.jsp</result>
<result name="failed">/error.jsp</result>
</action>
<action name="DisplayAction" class="com.action.DisplayAction" method="post">
<result name="success">/index.jsp</result>
<result name="fail">/error.jsp</result>
</action>
<action name="FindAction" class="com.action.FindAction" method="Login">
<result name="success">/index.jsp</result>
<result name="fail">/error.jsp</result>
</action>
<action name="ModifyAction" class="com.action.ModifyAction" method="Login">
<result name="success">/index.jsp</result>
<result name="fail">/error.jsp</result>
</action>
</package>
</struts>
struts总配置文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN"
"http://struts.apache.org/dtds/struts-2.1.7.dtd">
<struts>
<!-- 交出控制权给Spring -->
<constant name="struts.objectFactory" value="spring" /> <include file="struts-default.xml"></include>
<!-- 设置字符编码 -->
<constant name="struts.i18n.encoding" value="utf-8" />
<package name="default" extends="struts-default">
<!-- 设置全局的result,出现错误时跳转该页面 -->
<global-results>
<result name="no">/failed.jsp</result>
<result name="success">/seccess.jsp</result>
</global-results>
</package>
<!-- <include file="com/sff/config/struts/*-action.xml"></include> -->
<include file="com/config/struts/*-action.xml"></include>
</struts>
Action类代码
package com.action;
import com.model.UserInfo;
import com.service.UserService;
import com.util.BaseAction;public class AddAction extends BaseAction {
private UserInfo user;
private UserService userService;
/**
* @return the user
*/
public UserInfo getUser() {
return user;
}
/**
* @param user the user to set
*/
public void setUser(UserInfo user) {
this.user = user;
} /**
* @return the userService
*/
public UserService getUserService() {
return userService;
}
/**
*
* @param userService the userService to set
*/
public void setUserService(UserService userService) {
System.out.println(userService);
this.userService = userService;
}
public String addUserInfo() {
try{
System.out.println(userService);
userService.addUserInfo(user);
}catch(Exception e){
e.printStackTrace();
return "failed";
}
return "success";
}
}
userService一直为空,希望大家帮忙看下,怎么解决,谢谢
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<!--UserInfo相关 -->
<bean id="userFinder"
class="com.service.impl.UserFinderImpl"
parent="abstractFinder">
</bean>
<bean id="userService"
class="com.service.impl.UserServiceImpl"
parent="abstractPersistenceSerice">
</bean>
<bean id="AddAction" class="com.action.AddAction">
<property name="userService" ref="userService"></property>
</bean>
<bean id="DelAction" class="com.action.DelAction">
<property name="userService" ref="userService"></property>
</bean>
<bean id="DisplayAction" class="com.action.DisplayAction">
<property name="userFinder" ref="userFinder"></property>
</bean>
<bean id="FindAction" class="com.action.FindAction">
<property name="userFinder" ref="userFinder"></property>
</bean>
<bean id="ModifyAction" class="com.action.ModifyAction">
<property name="userService" ref="userService"></property>
</bean>
</beans>struts2的配置文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN"
"http://struts.apache.org/dtds/struts-2.1.7.dtd">
<struts>
<package name="user" extends="default">
<!-- 用于对同一表单,不同提交按钮的业务 -->
<action name="AddAction" class="com.action.AddAction" method="post">
<result name="success">/success.jsp</result>
<result name="failed">/failed.jsp</result>
</action>
<action name="DelAction" class="com.action.DelAction" method="post">
<result name="success">/index.jsp</result>
<result name="failed">/error.jsp</result>
</action>
<action name="DisplayAction" class="com.action.DisplayAction" method="post">
<result name="success">/index.jsp</result>
<result name="fail">/error.jsp</result>
</action>
<action name="FindAction" class="com.action.FindAction" method="Login">
<result name="success">/index.jsp</result>
<result name="fail">/error.jsp</result>
</action>
<action name="ModifyAction" class="com.action.ModifyAction" method="Login">
<result name="success">/index.jsp</result>
<result name="fail">/error.jsp</result>
</action>
</package>
</struts>
struts总配置文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN"
"http://struts.apache.org/dtds/struts-2.1.7.dtd">
<struts>
<!-- 交出控制权给Spring -->
<constant name="struts.objectFactory" value="spring" /> <include file="struts-default.xml"></include>
<!-- 设置字符编码 -->
<constant name="struts.i18n.encoding" value="utf-8" />
<package name="default" extends="struts-default">
<!-- 设置全局的result,出现错误时跳转该页面 -->
<global-results>
<result name="no">/failed.jsp</result>
<result name="success">/seccess.jsp</result>
</global-results>
</package>
<!-- <include file="com/sff/config/struts/*-action.xml"></include> -->
<include file="com/config/struts/*-action.xml"></include>
</struts>
Action类代码
package com.action;
import com.model.UserInfo;
import com.service.UserService;
import com.util.BaseAction;public class AddAction extends BaseAction {
private UserInfo user;
private UserService userService;
/**
* @return the user
*/
public UserInfo getUser() {
return user;
}
/**
* @param user the user to set
*/
public void setUser(UserInfo user) {
this.user = user;
} /**
* @return the userService
*/
public UserService getUserService() {
return userService;
}
/**
*
* @param userService the userService to set
*/
public void setUserService(UserService userService) {
System.out.println(userService);
this.userService = userService;
}
public String addUserInfo() {
try{
System.out.println(userService);
userService.addUserInfo(user);
}catch(Exception e){
e.printStackTrace();
return "failed";
}
return "success";
}
}
userService一直为空,希望大家帮忙看下,怎么解决,谢谢
解决方案 »
- 求一个 java版 网络教学系统或者贷款管理系统、谢谢
- 从数据库中读出一组数据在jsp页面循环显示,和一组循环显示的删除按钮,点击其中一个按钮删除对应的数据出现的问题.
- ERP开发成本比较 ASP.NET & JSP
- 大家能推荐几个学习j2ee的好点的视频吗
- ajax 同一个页面无法连续访问
- weblogic 部署出错
- EJB实现把数据库导入Excel表
- 我的WEB应用本来放在 /resin/webapps/下面一点问题都没有,但现在放在/resin/doc/下面了 就找不到标签了?
- jbuilderx中用weblogic的DataSource出错
- 求大神讲解怎么实现短信发送!!
- 求处理含有占位符(Placeholder)的字符串的工具类库!
- 请问 谁做过 NTP 时间校正 我想问如何获得 NTP时间
parent="abstractPersistenceSerice"定义?
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-2.0.xsd"> <!-- 配置数据源 -->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName">
<value>org.gjt.mm.mysql.Driver</value>
</property>
<property name="url">
<value>jdbc:mysql://192.168.1.91:3306/demogxa</value>
</property>
<property name="username">
<value>root</value>
</property>
<property name="password">
<value></value>
</property>
</bean>
<!-- 配置Hibernate的sessionFactory -->
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
<ref local="dataSource" />
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.MySQLDialect
</prop>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.format_sql">true</prop>
</props>
</property>
<property name="mappingResources">
<!--添加配置的映射文件 -->
<list>
<value>com/sff/project/model/User.hbm.xml</value>
</list>
</property>
</bean> <!--事务定义 -->
<bean id="transactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory">
<ref local="sessionFactory" />
</property>
</bean>
<tx:annotation-driven transaction-manager="transactionManager" />
<!-- 创建事务代理对象
<bean id="interceptor"
class="org.springframework.transaction.interceptor.TransactionInterceptor">
<property name="transactionManager">
<ref local="transactionManager"/>
</property>
<property name="transactionAttributes">
<props>
<prop key="*">PROPAGATION_REQUIRED,-Exception</prop>
</props>
</property>
</bean> -->
<!--自动事务代理,所有需要事务的bean的名称在这里定义>
<bean id="autocreator"
class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
<property name="beanNames">
<list>
<value>*Biz</value>
</list>
</property>
<property name="interceptorNames">
<list>
<value>interceptor</value>
</list>
</property>
</bean>
-->
<!--增强的hibernateTemplate,如客户使用到该类,可用此类注入 -->
<bean id="hibernateTemplateExt"
class="com.lovo.framework.persistence.hibernate3.HibernateTemplateExt">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean> <!-- 增强的hibernateDaoSupport -->
<bean id="hibernateDaoSupportExt"
class="com.lovo.framework.persistence.hibernate3.HibernateDaoSupportExt">
<property name="hibernateTemplate" ref="hibernateTemplateExt"></property>
</bean> <!-- 增、删、改dao实现类 -->
<bean id="dao"
class="com.lovo.framework.persistence.hibernate3.DaoHibernate3Impl">
<property name="hibernateTemplate" ref="hibernateTemplateExt"></property>
</bean> <!-- 增、删、改abstract持久服务抽象类-->
<bean id="abstractPersistenceSerice"
class="com.lovo.framework.persistence.AbstractPersistenceService"
abstract="true">
<property name="dao" ref="dao"></property>
</bean> <!-- hibernate查询服务抽象类 -->
<bean id="abstractFinder"
class="com.lovo.framework.persistence.hibernate3.AbstractHibernate3Finder"
abstract="true" parent="hibernateDaoSupportExt">
</bean>
</beans>申明在spring-resource.xml文件中
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-2.0.xsd"> <!-- 配置数据源 -->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName">
<value>org.gjt.mm.mysql.Driver</value>
</property>
<property name="url">
<value>jdbc:mysql://192.168.1.91:3306/demogxa</value>
</property>
<property name="username">
<value>root</value>
</property>
<property name="password">
<value></value>
</property>
</bean>
<!-- 配置Hibernate的sessionFactory -->
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
<ref local="dataSource" />
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.MySQLDialect
</prop>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.format_sql">true</prop>
</props>
</property>
<property name="mappingResources">
<!--添加配置的映射文件 -->
<list>
<value>com/sff/project/model/User.hbm.xml</value>
</list>
</property>
</bean> <!--事务定义 -->
<bean id="transactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory">
<ref local="sessionFactory" />
</property>
</bean>
<tx:annotation-driven transaction-manager="transactionManager" />
<!-- 创建事务代理对象
<bean id="interceptor"
class="org.springframework.transaction.interceptor.TransactionInterceptor">
<property name="transactionManager">
<ref local="transactionManager"/>
</property>
<property name="transactionAttributes">
<props>
<prop key="*">PROPAGATION_REQUIRED,-Exception</prop>
</props>
</property>
</bean> -->
<!--自动事务代理,所有需要事务的bean的名称在这里定义>
<bean id="autocreator"
class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
<property name="beanNames">
<list>
<value>*Biz</value>
</list>
</property>
<property name="interceptorNames">
<list>
<value>interceptor</value>
</list>
</property>
</bean>
-->
<!--增强的hibernateTemplate,如客户使用到该类,可用此类注入 -->
<bean id="hibernateTemplateExt"
class="com.lovo.framework.persistence.hibernate3.HibernateTemplateExt">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean> <!-- 增强的hibernateDaoSupport -->
<bean id="hibernateDaoSupportExt"
class="com.lovo.framework.persistence.hibernate3.HibernateDaoSupportExt">
<property name="hibernateTemplate" ref="hibernateTemplateExt"></property>
</bean> <!-- 增、删、改dao实现类 -->
<bean id="dao"
class="com.lovo.framework.persistence.hibernate3.DaoHibernate3Impl">
<property name="hibernateTemplate" ref="hibernateTemplateExt"></property>
</bean> <!-- 增、删、改abstract持久服务抽象类-->
<bean id="abstractPersistenceSerice"
class="com.lovo.framework.persistence.AbstractPersistenceService"
abstract="true">
<property name="dao" ref="dao"></property>
</bean> <!-- hibernate查询服务抽象类 -->
<bean id="abstractFinder"
class="com.lovo.framework.persistence.hibernate3.AbstractHibernate3Finder"
abstract="true" parent="hibernateDaoSupportExt">
</bean>
</beans>申明在spring-resource.xml文件中
肯定是关联在一起的
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"><beans>
<!-- 注入数据源 -->
<import resource="spring-resource.xml"/>
<!-- 注入user服务 -->
<import resource="spring-user-service.xml"/>
</beans>这个就是关联文件
<constant name="struts.objectFactory" value="spring" />既然控制权给Spring了 为什么在struts文件里面class属性还要写全?
<!-- 用于对同一表单,不同提交按钮的业务 -->
<action name="AddAction" class="com.action.AddAction" method="post">
<result name="success">/success.jsp</result>
改成这样的试试
<action name="AddAction" class="AddAction" method="post">
<result name="success">/success.jsp</result>
这样写要报错的,classnotfoundexception
<action name="AddAction" class="addAction" method="post">
<result name="success">/success.jsp</result>然后Spring中:
<bean id="addAction" class="com.action.AddAction">
<property name="userService" ref="userService"></property>
</bean>
还是不行的,classnotfoundexception
<result name="success">/success.jsp</result>然后Spring中:
<bean id="addAction" class="com.action.AddAction">
<property name="userService" ref="userService"></property>
</bean>不知道 你在com.action.AddAction 这文件中是否有 post这个方法
因为你在 action 中配置了一个指定的方法名
spring 中 bean id 就是struts配置里的class 这两个值要匹配
struts中的这个 method 应该是指定 spring中配置的这个action文件的 一个存在的方法
肯定是匹配的,只是属性注入失败,userService为null
这个没有测试过,配置文件,和代码都看不出问题,但是确是null,百思不得其解
<action name="AddAction" class="com.action.AddAction" method="post">
<result name="success">/success.jsp</result>
<result name="failed">/failed.jsp</result>
</action>
你没有把struts交给spring托管!!
你的action请求来了后,还是去直接找的
<action name="AddAction" class="com.action.AddAction" method="post">,根本就没有到spring的配置文件中去找相应的action。
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
<listener>
<listener-class>
org.apache.struts2.tiles.StrutsTilesListener
</listener-class>
</listener>
控制权是交给spring的,托管自然给了spring的啊...