applicationContext
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="configLocation"
value="classpath:hibernate.cfg.xml">
</property>
</bean>
<bean id="loginAction" class="com.test.action.LoginAction"
scope="prototype">
<property name="loginManager" ref="loginManager"></property>
</bean>
<bean id="loginManager"
class="com.test.manager.impl.LoginManagerImpl">
<property name="sessionFactory" >
<ref local="sessionFactory"/>
</property>
</bean>struts
<struts>
<constant name="struts.objectFactory" value="spring" />
<package name="struts2" extends="struts-default">
<action name="login" class="loginAction">
<result name="success">welcome.jsp</result>
<result name="input">login.jsp</result>
<result name="error">error.jsp</result>
</action>
</package>
</struts>action
private LoginManager loginManager;
private Person per; public LoginManager getLoginManager() {
return loginManager;
} public void setLoginManager(LoginManager loginManager) {
this.loginManager = loginManager;
} @Override
public String execute() throws Exception { if (loginManager.isLogin(per)) {
return SUCCESS;
}
return INPUT;
} public Person getPer() {
return per;
} public void setPer(Person per) {
this.per = per;
}
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="configLocation"
value="classpath:hibernate.cfg.xml">
</property>
</bean>
<bean id="loginAction" class="com.test.action.LoginAction"
scope="prototype">
<property name="loginManager" ref="loginManager"></property>
</bean>
<bean id="loginManager"
class="com.test.manager.impl.LoginManagerImpl">
<property name="sessionFactory" >
<ref local="sessionFactory"/>
</property>
</bean>struts
<struts>
<constant name="struts.objectFactory" value="spring" />
<package name="struts2" extends="struts-default">
<action name="login" class="loginAction">
<result name="success">welcome.jsp</result>
<result name="input">login.jsp</result>
<result name="error">error.jsp</result>
</action>
</package>
</struts>action
private LoginManager loginManager;
private Person per; public LoginManager getLoginManager() {
return loginManager;
} public void setLoginManager(LoginManager loginManager) {
this.loginManager = loginManager;
} @Override
public String execute() throws Exception { if (loginManager.isLogin(per)) {
return SUCCESS;
}
return INPUT;
} public Person getPer() {
return per;
} public void setPer(Person per) {
this.per = per;
}
scope="prototype">
<property name="loginManager" ref="loginManager"></property>
</bean>
和下面的代码调换一下位置试试
<bean id="loginManager"
class="com.test.manager.impl.LoginManagerImpl">
<property name="sessionFactory" >
<ref local="sessionFactory"/>
</property>
</bean>
<!-- 配置Spring的监听 -->
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>以下为web.xml所有代码
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<!-- 配置Spring -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
classpath:application-*.xml
</param-value>
</context-param> <!-- 配置Struts2
<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> --> <!-- 配置Spring的监听 -->
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
<!-- 配置Spring的过滤器,解决乱码问题 -->
<filter>
<filter-name>encoding</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<welcome-file-list>
<welcome-file>reg.jsp</welcome-file>
</welcome-file-list>
<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
</filter-class>
<init-param>
<param-name>config</param-name>
<param-value>struts-default.xml, classpath:struts.xml</param-value>
</init-param>
</filter> <filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping> </web-app>
引用service包中的接口IUserService类。但是我引用的的实现类UserService