Struts + Spring 关键配置

本文详细介绍如何将Struts与Spring框架集成,包括所需Jar包的添加、配置Struts插件、Action配置及Spring Bean配置等步骤,并提供了一个注册Action的具体示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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 持久层
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值