将struts2中的action交给spring管理
1.xml方式
applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop" 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.5.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd"> <bean id="testAction" class="com.je.app.web.JeTestAction" scope="prototype"></bean> </beans>
sturts.xml
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <package name="je" extends="struts-default" namespace="/je"> <!-- Test--> <action name="test" class="testAction"> <result name="invalid.token">/pages/je/test.jsp</result> </action> </package> </struts>
2.注解方式
JeTestAction.java
/**
* JeTestAction
* @author wkkyo
*/
@Controller
@Scope("prototype")
public class JeTestAction extends ActionSupport {
}
sturts.xml
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <package name="je" extends="struts-default" namespace="/je"> <!-- Test--> <action name="test" class="jeTestAction"> <result name="invalid.token">/pages/je/test.jsp</result> </action> </package> </struts>
注意:如果没有指定scope就会出现action属性保存(验证)后一直存在的问题,导致后面的保存(验证)根本没有进行
所以在spring中配置action时要指定scope属性为prototype
配置文件中加入scope="prototype"
<bean id="testAction" class="com.je.app.web.JeTestAction" scope="prototype"></bean>
注解的话要加上@Scope("prototype")
这样就ok了
默认的spring的bean的周期是单态的(Singleton)
对于每一次请求就不会生成新的实例