用泛化实现DAO大家就比较了解, 不知有没有人用泛化实现action呢, 代码如下:
java 代码
-
- import java.io.Serializable;
- import java.lang.reflect.ParameterizedType;
-
- import org.apache.log4j.Logger;
-
- import com.kelefa.common.dao.AbstractDAO;
- import com.opensymphony.xwork.Action;
- import com.opensymphony.xwork.ActionSupport;
-
- /*
-
-
-
-
-
-
-
- public abstract class AddBase<DAO extends AbstractDAO<VO, ID>, VO, ID extends Serializable>
- extends ActionSupport
- {
- private static final Logger log = Logger.getLogger( AddBase.class );
-
- private static final long serialVersionUID = 1L;
-
-
-
-
- protected DAO dao;
-
- public void setDao( DAO dao )
- {
- this.dao = dao;
- }
-
- protected VO vo = newValueObject();
-
- public VO getVo()
- {
- return vo;
- }
-
- public AddBase()
- {
- }
-
-
- @SuppressWarnings( "unchecked" )
- protected VO newValueObject()
- {
- Class entityClass = (Class) ((ParameterizedType) getClass()
- .getGenericSuperclass()).getActualTypeArguments()[1];
-
- if ( log.isDebugEnabled() )
- log.debug( "entityClass: " + entityClass.getCanonicalName() );
-
- VO newInstance = null;
- try
- {
- newInstance = (VO) entityClass.newInstance();
- }
- catch ( InstantiationException ex )
- {
- log.warn( ex.getMessage(), ex );
- }
- catch ( IllegalAccessException ex )
- {
- log.warn( ex.getMessage(), ex );
- }
-
- return newInstance;
- }
-
-
-
-
- @Override
- public String execute()
- throws Exception
- {
- dao.insert( vo );
-
- return Action.SUCCESS;
- }
- }
这样派生类不用写一行代码即可实现添加功能, 例如:
java 代码
-
- import com.kelefa.common.action.AddBase;
- import com.kingonsoft.house.dao.cms.ADTypeDAO;
- import com.kingonsoft.house.entity.cms.ADType;
-
-
- public class AddADType
- extends AddBase
- {
- private static final long serialVersionUID = 1L;
- }
不知大家对这种方法有何看法.
分享到:
相关推荐
让我们深入探讨WebWork的核心概念、Action的创建以及如何实现基本的流程控制。 **WebWork核心概念** 1. **Action**: 在WebWork中,Action是业务逻辑的主要载体。它负责接收来自视图层(如JSP)的请求,处理业务...
根据提供的文件信息,本书《WebWork in Action》主要聚焦于Java WebWork框架的应用与实践,是一本详尽介绍WebWork框架各个方面的书籍。下面将基于标题、描述、标签及部分内容来提取并归纳出相关的IT知识点。 ### ...
webwork in action 第一部分:概貌 第二部分:核心内容 第三部分:内容的显示 第四部分:高级话题
Interceptor则提供了一种灵活的方式来拦截Action的执行,实现如日志记录、权限验证等功能;ValueStack是Webwork中的数据绑定机制,它简化了视图和模型之间的数据传递;而OGNL(Object-Graph Navigation Language)是...
《WebWork in Action》是一本专注于介绍WebWork框架的书籍,源代码的提供是为了让读者更深入地理解和实践书中的示例。WebWork是一个基于Java的MVC(模型-视图-控制器)框架,用于构建动态Web应用程序。它强调了代码...
4. **Interceptors(拦截器)**:WebWork引入了拦截器的概念,它们在Action执行前后执行,可以实现通用的功能,如权限检查、日志记录等。在源码中,你会看到这些拦截器的实现。 5. **Value Stack(值栈)**:...
webwork in action 中文版
webwork in action 中文版
webwork in action 中文版
### 如何实现WebWork+Spring+Hibernate框架结合 随着企业级应用需求的不断增加和技术的不断发展,集成多种技术栈成为一种趋势。WebWork+Spring+Hibernate是早期比较流行的一种技术组合,它们各自解决的问题域不同,...
从书名“WebWork in Action”及简短的描述“WebWork in action”,可以看出这本书旨在通过实践的方式教授读者如何使用WebWork这一Java Web应用开发框架。下面我们将从几个关键章节入手,深入挖掘其中涉及的重要知识...
`DefaultActionProxy`内部包含了Action的配置信息,它会创建并初始化`DefaultActionInvocation`,`DefaultActionInvocation`是Action执行过程的具体实现,它会按照配置信息调用Action的方法并处理结果。 - `...
"WebWork in Action"是一本专著,深入探讨了这个框架的各个方面,包括其设计理念、核心组件以及如何有效地利用它们来开发高效、可维护的Web应用。这本书通常会涵盖以下关键知识点: 1. **MVC架构**:WebWork遵循MVC...
webwork in action 的中文版,影印,高清晰,本人阅读中。非常不错。文件太大了,分了 15个压缩文件。每个文件1分。
真正的webwork in Action中文清晰完整版,还附有书上的示例代码,不同于其它的章节摘录版,模糊版,英文版...学习webwork的最佳教材
webwork.in.action中文pdf版 part5
webwork.in.action中文版 pdf版本
1. **动作映射**:WebWork通过XML配置文件定义动作(Action)与URL之间的映射,这使得URL可以直接对应到特定的业务处理方法,简化了请求路由。 2. **强大的表单绑定**:WebWork支持将HTTP请求参数自动绑定到Action...