1、首先把spring和struts需要的包加入到工程lib下
2、在struts-config.xml中添加插件
<struts-config>
<plug-in
className="org.springframework.web.struts.ContextLoaderPlugIn">
<set-property property="contextConfigLocation"
value="/WEB-INF/applicationContext.xml" />
</plug-in>
</struts-config>
注:为 Struts 的 ActionServlet 装载 Spring 应用程序环境。就像添加任何其他插件一样,简单地向您的 struts-config.xml 文件添加该插件。
3、对Action进行配置
<action-mappings>
<action path="/reg"
type="org.springframework.web.struts.DelegatingActionProxy"
name="regForm">
</action>
</action-mappings>
注:,Struts 在运行期加载的实际上是DelegatingActionProxy , 而
DelegatingActionProxy则实现了针对实际Action的调用代理,Struts最终调用的将是由Spring
管理的Action实例。
4、在beans-config.xml中配置的要点:
<bean id="userBLL" class="com.bll.UserBLL"></bean>
<bean name="/reg" class="com.web.struts.action.RegAction"
singleton="false">
<property name="userBusiness">
<ref bean="userBLL" />
</property>
</bean>
注意这里的name="/reg"里的值(/reg)要和struts-config.xml里Action的path值一样
如果启动出现java.lang.NoClassDefFoundError: javax/transaction/UserTransaction
请在lib下加入jta.jar包
5、最后写个action测试下:
程序代码
package com.web.struts.action;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.validator.DynaValidatorForm;
import com.bll.UserBLL;
import com.vo.User;
public class RegAction extends Action {
private UserBLL userBusiness=null;//通过spring注入实例化对象
public ActionForward execute(
ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response) {
DynaValidatorForm regForm = (DynaValidatorForm) form;
String email=regForm.getString("email").toString();
String username=regForm.get("username").toString();
String password=regForm.get("password1").toString();
User user=new User(username,password,email);
if(this.getUserBusiness().addUser(user)) {
System.out.print("...success...");
}else{
System.out.print("...error...");
}
return null;
}
public UserBLL getUserBusiness() {
return userBusiness;
}
public void setUserBusiness(UserBLL userBusiness) {
this.userBusiness = userBusiness;
}
}
* 注 * 可根据需要加入 Hibernate 持久层
2、在struts-config.xml中添加插件
<struts-config>
<plug-in
className="org.springframework.web.struts.ContextLoaderPlugIn">
<set-property property="contextConfigLocation"
value="/WEB-INF/applicationContext.xml" />
</plug-in>
</struts-config>
注:为 Struts 的 ActionServlet 装载 Spring 应用程序环境。就像添加任何其他插件一样,简单地向您的 struts-config.xml 文件添加该插件。
3、对Action进行配置
<action-mappings>
<action path="/reg"
type="org.springframework.web.struts.DelegatingActionProxy"
name="regForm">
</action>
</action-mappings>
注:,Struts 在运行期加载的实际上是DelegatingActionProxy , 而
DelegatingActionProxy则实现了针对实际Action的调用代理,Struts最终调用的将是由Spring
管理的Action实例。
4、在beans-config.xml中配置的要点:
<bean id="userBLL" class="com.bll.UserBLL"></bean>
<bean name="/reg" class="com.web.struts.action.RegAction"
singleton="false">
<property name="userBusiness">
<ref bean="userBLL" />
</property>
</bean>
注意这里的name="/reg"里的值(/reg)要和struts-config.xml里Action的path值一样
如果启动出现java.lang.NoClassDefFoundError: javax/transaction/UserTransaction
请在lib下加入jta.jar包
5、最后写个action测试下:

package com.web.struts.action;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.validator.DynaValidatorForm;
import com.bll.UserBLL;
import com.vo.User;
public class RegAction extends Action {
private UserBLL userBusiness=null;//通过spring注入实例化对象
public ActionForward execute(
ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response) {
DynaValidatorForm regForm = (DynaValidatorForm) form;
String email=regForm.getString("email").toString();
String username=regForm.get("username").toString();
String password=regForm.get("password1").toString();
User user=new User(username,password,email);
if(this.getUserBusiness().addUser(user)) {
System.out.print("...success...");
}else{
System.out.print("...error...");
}
return null;
}
public UserBLL getUserBusiness() {
return userBusiness;
}
public void setUserBusiness(UserBLL userBusiness) {
this.userBusiness = userBusiness;
}
}
* 注 * 可根据需要加入 Hibernate 持久层