`
mfcai
  • 浏览: 409051 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

自定义的Action基类扩展struts框架

阅读更多
   
    在struts中,对于业务逻辑的操作则主要由Action、ActionMapping、ActionForward这几个组件协调完成的,其中Action扮演了真正的业务逻辑的实现者,ActionMapping与ActionForward则指定了不同业务逻辑或流程的运行方向。
    在struts应用中,每个Action类都需要从 org.apache.struts.action.Action 继承而来。但实际应用中,我们喜欢从Action类中总结出来了一些通用特性。因此,构造一个基类将这些通用特性的代码实现出来,让应用中所用到的所有Action类直接继承我们构造的基类,而不是继承org.apache.struts.action.Action.从总结出来的通用特性中,最常见的是用户是否登陆,判断session失效,用户权限认证,错误日志打印等.这些通用特性都在自己构造的基类中实现,而且不需要在其他Action类中去调用
思路:
我的struts版本是struts1.0
1.定义一个抽象的基类ComAction,该基类继承org.apache.struts.action.Action
2.在ComAction定义一个抽象方法execute,应用中的其他action类都要覆盖这个方法,在这个方法实现具体的业务逻辑.
3.在ComAction中定义一个方法perform,是用来覆盖Action的perform方法,在这个方法中,完成公用的特性
4.在perform调用抽象类execute.
具体实现,以判断session是否失效为例:
import javax.servlet.http.*;
import org.apache.struts.action.*;
public abstract class ComAction extends Action {
	public ComAction() {
	}
	public ActionForward perform(ActionMapping mapping,
				     ActionForm form,
				     HttpServletRequest request,
				     HttpServletResponse response
				    ) {
		try {
		   HttpSession   session=request.getSession();
                   //判断session是否失效
                   if(session.getAttribute("userId")!=null)
                      //否,执行业务逻辑
                      forwardTo = perform(mapping, form, request, response);
                   else
                      //是,跳转到错误页面
                      forwardTo ="syserr";
		} catch (Exception e) {
                        //有异常,也跳转到错误页面
			forwardTo = "syserr";
			System.out.println("Exception :" + e.getMessage());
		}

		return (mapping.findForward(forwardTo));
	}

	
    public abstract String execute(
        ActionMapping mapping,
        ActionForm form,
        HttpServletRequest request,
        HttpServletResponse response);
}




文章欢迎转载,但请注明出处和作者
分享到:
评论
1 楼 ddd0401 2008-11-16  
这兄弟的forwardTo变量还没有定义哦,贴的代码被切过把,呵呵

相关推荐

    Java Struts框架示例项目

    1. **Action类**:这是业务逻辑的执行者,继承自`com.opensymphony.xwork2.ActionSupport`或自定义基类,并实现相应的业务方法。 2. **配置文件**:包括struts.xml,它是Struts2的核心配置文件,用于定义Action、...

    Struts框架 Jar包.rar

    这个"Struts框架 Jar包.rar"文件包含了运行Struts框架所需的核心库和其他相关组件,使得开发者能够更方便地构建可维护、可扩展的Web应用。 Struts框架的核心组件包括: 1. **Struts Action**:这是框架的控制器部分...

    自定义实现Struts2源代码

    通过以上步骤,你将能够对Struts2有更深入的理解,并能根据需求自定义Action、Interceptor和Result,从而更好地适应项目需求。实践是检验真理的唯一标准,动手实践这些自定义实现,将使你对Struts2的掌握更加扎实。

    Struts框架详解

    ### Struts框架详解 #### 一、Struts框架概述 Struts框架是一个开源的Java Web应用框架,基于Model-View-Controller(MVC)架构模式。该框架的主要优点在于其高度模块化的设计,具备良好的灵活性和重用性,极大地...

    Struts框架之构建Controller组件.rar

    Action类是Struts框架的核心组件之一,它是控制器的具体实现。一个Action类通常对应于一个用户操作,处理与该操作相关的业务逻辑。Action类需要继承自`org.apache.struts.action.Action`基类,并重写`execute()`...

    Struts三大框架系统

    1. **Action**:Action是处理用户请求的类,通常继承自`ActionSupport`或自定义基类,实现业务逻辑。 2. **Interceptor**(拦截器):拦截器是Struts 2的一大特色,它可以插入到Action执行流程中,执行预处理和后...

    使用freemarker扩展struts标签

    扩展Struts2的标签库意味着创建自定义的标签,这些标签可以嵌入到FreeMarker模板中,以提供更高级别的抽象和可重用性。这通常涉及到创建自定义的Action、模型类和标签库定义文件(TLD)。 在给定的文件列表中,我们...

    自定义struts(实现拦截器)

    自定义Struts时,你需要创建自己的XML配置文件,比如`mystruts.xml`,这个文件将替代或扩展默认的配置,用来加载自定义的Action和拦截器。 2. **Action**: - Action是业务逻辑的载体,它接收用户请求并执行相应的...

    Struts2接口文档

    Action接口定义了处理用户请求的方法,如execute(),开发者通常会自定义Action类来实现业务逻辑。Result接口则描述了如何将Action执行后的结果呈现给用户,比如转发、重定向或渲染视图。而Interceptor接口则用于在...

    Struts框架

    Struts框架是Java Web开发中的一个关键组件,它属于MVC(Model-View-Controller)设计模式的一个实现,主要用于构建可维护性和可扩展性高的Web应用程序。由Apache软件基金会维护,Struts为开发者提供了一种结构化的...

    struts2 框架教程

    Struts2中的Action无需继承特定基类,可以是一个简单的Plain Old Java Object (POJO),提高了代码的可复用性。 3. **业务逻辑组件**:这部分也需要开发者自行实现,通常包括模型对象和数据访问层,用于处理实际的...

    Struts框架包

    开发者可以自定义Action类,继承自Struts2提供的基类,比如`ActionSupport`。 6. **Interceptor**:拦截器是Struts2的一个重要特性,它允许在Action执行前后插入自定义逻辑,如日志、权限检查、事务管理等。开发者...

    Struts2框架-jar包

    通过自定义拦截器,开发者可以扩展框架的功能,实现业务逻辑的解耦。 再者,Struts2的视图层支持多种技术,如JSP、FreeMarker、Velocity等。其中,Struts2标签库提供了一系列便捷的标签,简化了JSP页面的编写,使得...

    Struts.in.Action(Struts在行动)

    《Struts in Action》是Java Web开发领域中一本经典的书籍,专注于讲解Apache Struts框架的使用和实践。Struts是一个开源的MVC框架,它帮助开发者构建基于Java Servlet的Web应用程序,通过提供一种结构化的、可扩展...

    Web开发学习8Struts2基类封装

    在“Web开发学习8Struts2基类封装”这一主题中,我们将深入探讨Struts2框架的核心概念、基类封装以及如何通过源码分析来提升开发效率。 首先,Struts2框架的核心在于Action类,它是处理用户请求的入口点。在传统的...

    struts2框架必备

    Struts2框架是Java Web开发中的一个流行框架,它基于Model-View-Controller(MVC)设计模式,为开发者提供了一种结构化和可扩展的方式来构建动态网站、Web应用程序和服务。Struts2作为Apache软件基金会的产品,是...

    自定义struts2标签

    在Struts2中,自定义标签是扩展其功能和实现个性化界面的重要手段。通过自定义标签,开发者可以构建更加符合业务需求的视图层,提高代码的可读性和可维护性。本文将深入探讨如何在Struts2中自定义标签,并利用栈顶...

    struts2 框架源码

    Action类通过ActionSupport基类或自定义实现,可以轻松地添加拦截器和全局结果。 **2. MVC架构:** - **Model(模型)**:在Struts2中,Model通常由业务对象(BO)和数据访问对象(DAO)组成。BO封装了业务逻辑,...

    Struts2框架

    Struts2则允许Action类实现Action接口或其他自定义接口,ActionSupport基类提供了常用功能的实现。此外,Struts2的Action不再局限于特定的类结构,任何具有execute()方法的POJO对象都可以作为Action使用,增加了可...

Global site tag (gtag.js) - Google Analytics