struts+spring整合
摘自 http://www.dodoh.net/yoyo/article.asp?id=217
![](http://www.dodoh.net/yoyo/images/weather/hn2_sunny.gif)
![](http://www.dodoh.net/yoyo/images/weather/hn2_t_sunny.gif)
![](http://www.dodoh.net/yoyo/images/level3.gif)
1、首先把spring和struts需要的包加入到工程lib下
2、在struts-config.xml中添加插件
注:为 Struts 的 ActionServlet 装载 Spring 应用程序环境。就像添加任何其他插件一样,简单地向您的 struts-config.xml 文件添加该插件。
3、对Action进行配置
注:,Struts 在运行期加载的实际上是DelegatingActionProxy , 而
DelegatingActionProxy则实现了针对实际Action的调用代理,Struts最终调用的将是由Spring
管理的Action实例。
4、在beans-config.xml中配置的要点:
注意这里的name="/reg"里的值(/reg)要和struts-config.xml里Action的path值一样
如果启动出现java.lang.NoClassDefFoundError: javax/transaction/UserTransaction
请在lib下加入jta.jar包
5、最后写个action测试下:
程序代码
2、在struts-config.xml中添加插件
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进行配置
xml 代码
- <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中配置的要点:
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测试下:
![程序代码](http://www.dodoh.net/yoyo/images/code.gif)
java 代码
- 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;
- }
- }