Struts整合spring方法(二)

93 篇文章 0 订阅
13 篇文章 0 订阅
  
用Spring的DelegatingRequestProcessor类来代替struts中的RequestProcessor类,从而把struts中的action与Spring分离。并把struts的动作置于Spring框架的控制下。
1。新建一个登陆页面:loginDelegatingRequestProcessor.jsp
<%@ page contentType = "text/html;charset=GBK" isELIgnored = "false" %>
< html >
< head >< title > 实现用户登录的 Struts 实例 </ title ></ head >
< body >
    < font size = ’22’ > ${msg} < br > </ font >
    < form name = "form1" action = "/myLogin2/loginDelegatingRequestProcessor.do" method = "post" >
        用户名: < input type = "text" name = "username" value = "${user.username}"/><br>
       密码: < input type = "password" name = "password" value = "${user.password}"/><br>
        < input type = "submit" name = ”method” value = " 提交 " />
    </ form >
</ body >
</ html >
2。 创建一个存储登陆用户信息的类: User.java 该类继承于 ActionForm ,代码如下:
package com.zhaosoft.bean;
 
import org.apache.struts.action.ActionForm;
 
public class User extends ActionForm {
 
    private String username = null ;
    private String password = null ;
    public String getUsername() {
       return username ;
    }
    public void setUsername(String username) {
       this . username = username;
    }
    public String getPassword() {
       return password ;
    }
    public void setPassword(String password) {
       this . password = password;
    }
   
   
}
3   Com.zhaosoft.action 中新建一个 LoginDelegationRequestProcessor .java ,该类继承于 struts Action ,代码示例如下:
package com.zhaosoft.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 com.zhaosoft.bean.User;
import com.zhaosoft.domain.Login;
 
public class LoginDelegationRequestProcessor extends Action {
 
       private Login login;
 
       public Login getLogin() {
              return login;
       }
 
       public void setLogin(Login login) {
              this.login = login;
       }
 
       public ActionForward execute(ActionMapping mapping, ActionForm form,
                     HttpServletRequest request, HttpServletResponse response)
                     throws Exception {
              String forwardJsp = "login";
              getLogin().login((User) form);
              request.setAttribute("msg", login.getMsg());
              request.setAttribute("user", (User) form);
 
              return mapping.findForward("login");
       }
 
}
4。  新建包: com.zhaosoft.domain com.zhaosoft.domain.impl 在包 com.zhaosoft.domain 中新建一个接口: Login.java 用来定义登陆的逻辑处理,示例代码如下:
package com.zhaosoft.domain;
 
import com.zhaosoft.bean.User;
 
public interface Login {
public abstract void login(User user);
public abstract String getMsg();
}
5   在包 com.zhaosoft.domain.impl 中建立 LoginImpl.java 用来实现登陆的逻辑处理
package com.zhaosoft.domain.impl;
 
import com.zhaosoft.bean.User;
import com.zhaosoft.domain.Login;
 
public class LoginImpl implements Login {
 
    private String msg ;
    public String getMsg() {
       return this . msg ;
    }
 
    public void login(User user) {
       String username = user.getUsername();
       String password = user.getPassword();
       if (username == null && password == null ) {
           msg = " 请输入用户名和密码 " ;
       } else if ( "" .equals(username) || "" .equals(password)) {
           msg = " 请输入用户名和密码 " ;
       } else if ( "zhaosoft" .equals(username) && "zhaosoft" .equals(password)) {
           msg = " 登陆成功 " ;
       } else if (! "zhaosoft" .equals(username)) {
           msg = " 用户名填写错误 " ;
       }
    }
 
}
6. 修改 struts 的配置文件 struts-config.xml ,注册 ContextLoaderPlugIn 插件,实例代码如下:
<? xml version = "1.0" encoding = "UTF-8" ?>
<! DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_2.dtd" >
< struts-config >
    <!-- 定义 formbean-->
    < form-beans >
       < form-bean name = "user" type = "com.zhaosoft.bean.User" ></ form-bean >
    </ form-beans >
    < action-mappings >
       < action path = "/loginDelegatingRequestProcessor"
           type = "com.zhaosoft.action.LoginDelegationRequestProcessor"
           name = "user" >
           < forward name = "login"
              path = "/jsp/loginDelegatingRequestProcessor.jsp" >
           </ forward >
       </ action >
       < action path = "/loginDelegatingRequestProcessorTemp"
           type = "org.apache.struts.actions.ForwardAction"
           parameter = "/jsp/loginDelegatingRequestProcessor.jsp" >
       </ action >
    </ action-mappings >
    < controller
       processorClass = "org.springframework.web.struts.DelegatingRequestProcessor" >
    </ controller >
    < plug-in
       className = "org.springframework.web.struts.ContextLoaderPlugIn" >
       < set-property property = "contextConfigLocation"
           value = "/WEB-INF/spring-config.xml" />
    </ plug-in >
</ struts-config >
7. 编写Spring的配置文件spring-config.xml。放在WEB-INF目录中,代码如下:
<? xml version = "1.0" encoding = "UTF-8" ?>
<! DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd" >
< beans >
    < bean id = "login" class = "com.zhaosoft.domain.impl.LoginImpl" >
    </ bean >
    < bean name = "/loginDelegatingRequestProcessor" class = "com.zhaosoft.action.LoginDelegationRequestProcessor" >
    < property name = "login" >
    < ref bean = "login" />
    </ property >
    </ bean >
</ beans >
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值