`
laorer
  • 浏览: 435788 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Struts ActionForm的优化写法(转)

    博客分类:
  • j2EE
阅读更多

....

http://www.blogjava.net/liaojiyong/archive/2007/05/16/117833.html

......

要点:
  在ActionForm定义值对象company,定义Setter/Getter方法;
  在JSP里对input元素的名称稍加变化,加company前缀,company.cp_name。
  Struts能把company.cp_name的值自动地Populate到对象company,填充cp_name属性。

效果:
  简化ActionForm对属性的定义,实际上系统只需要保留ValueObject和PersistObject两类对象。
  本质上是借用值对象ValueObject作为ActionForm的传值对象。
 
变化:
  当页面元素来自不同类值对象时,例如Company,Bulletin等,分别写不同的前缀,company.cp_name,bulletin.bl_title。
  对于不属于任何值对象的元素,照基本写法写。

===
示例代码

** 传统写法:
//CompanyForm.java

package com.ticket.company.actionform;
import javax.servlet.http.*;
import org.apache.struts.action.*;
import com.ticket.entity.company.*;

public class CompanyForm
    
extends ActionForm ...{

    
private String cp_name;            //名称
    private String cp_phone;           //电话
    private String cp_fax;             //传真

    
public String getCp_name() ...{
        
return cp_name;
    }


    
public void setCp_name(String cp_name) ...{
        
this.cp_name = cp_name;
    }


    
public String getCp_phone() ...{
        
return cp_phone;
    }


    
public void setCp_phone(String cp_phone) ...{
        
this.cp_phone = cp_phone;
    }


    
public String getCp_fax() ...{
        
return cp_fax;
    }


    
public void setCp_fax(String cp_fax) ...{
        
this.cp_fax = cp_fax;
    }


    
//其他代码
}


** 优化写法:

//CompanyForm.java

package com.ticket.company.actionform;

import javax.servlet.http.*;
import org.apache.struts.action.*;
import com.ticket.entity.company.*;

public class CompanyForm
    
extends ActionForm ...{

    
public Company company = new Company();

    
public Company getCompany() ...{
        
return company;
    }


    
public void setCompany(Company company) ...{
        
this.company = company;
    }


    
//其他代码
}


//company_add.jsp

要点:
  在ActionForm定义值对象company,定义Setter/Getter方法;
  在JSP里对input元素的名称稍加变化,加company前缀,company.cp_name。
  Struts能把company.cp_name的值自动地Populate到对象company,填充cp_name属性。

效果:
  简化ActionForm对属性的定义,实际上系统只需要保留ValueObject和PersistObject两类对象。
  本质上是借用值对象ValueObject作为ActionForm的传值对象。
 
变化:
  当页面元素来自不同类值对象时,例如Company,Bulletin等,分别写不同的前缀,company.cp_name,bulletin.bl_title。
  对于不属于任何值对象的元素,照基本写法写。

===
示例代码

** 传统写法:
//CompanyForm.java

package com.ticket.company.actionform;
import javax.servlet.http.*;
import org.apache.struts.action.*;
import com.ticket.entity.company.*;

public class CompanyForm
    
extends ActionForm ...{

    
private String cp_name;            //名称
    private String cp_phone;           //电话
    private String cp_fax;             //传真

    
public String getCp_name() ...{
        
return cp_name;
    }


    
public void setCp_name(String cp_name) ...{
        
this.cp_name = cp_name;
    }


    
public String getCp_phone() ...{
        
return cp_phone;
    }


    
public void setCp_phone(String cp_phone) ...{
        
this.cp_phone = cp_phone;
    }


    
public String getCp_fax() ...{
        
return cp_fax;
    }


    
public void setCp_fax(String cp_fax) ...{
        
this.cp_fax = cp_fax;
    }


    
//其他代码
}


** 优化写法:

//CompanyForm.java

package com.ticket.company.actionform;

import javax.servlet.http.*;
import org.apache.struts.action.*;
import com.ticket.entity.company.*;

public class CompanyForm
    
extends ActionForm ...{

    
public Company company = new Company();

    
public Company getCompany() ...{
        
return company;
    }


    
public void setCompany(Company company) ...{
        
this.company = company;
    }


    
//其他代码
}


//company_add.jsp

<form action="companyAdmin.do?action=addConfirm&forward=listAllLevel1" method="post" name="myForm" > 
    
<tr> 
        
<td height="23" align="right"  class="bg2">单位名称: </td>
        
<td width="85%">
            
<input name="company.cp_name" type="text" maxlength="25" size="50" height="16">
            
<font color="#FF0000">*</font>
        
</td>
    
</tr>
    
<tr>
        
<td height="23" align="right"  class="bg2">电  话:</td>
        
<td width="85%">
            
<input name="company.cp_phone" type="text" maxlength="20" size="30" height="16">
        
</td>
    
</tr>
    
<tr>
        
<td height="23" align="right"  class="bg2">传  真:</td>
        
<td width="85%">
            
<input name="company.cp_fax" type="text" maxlength="20" size="30" height="16">
           
</td>
    
</tr>
</form>

 


 

分享到:
评论

相关推荐

    struts中ActionForm的validate方法使用小得

    在Struts中,ActionForm类是处理用户输入数据的核心组件,它封装了请求参数并负责业务逻辑验证。本文将详细讨论如何在Struts中使用ActionForm的`validate`方法进行数据验证。 `validate`方法是在ActionForm中定义的...

    struts ActionForm

    Struts ActionForm是Java Web开发中Struts框架的一个核心组件,主要用于处理用户在表单中的输入数据。在早期的Struts 1版本中,ActionForm是MVC设计模式中的Model部分,它作为控制器(Controller)与视图(View)...

    STRUTS ActionForm乱码,servlet全局过滤器转义编码。

    Struts框架中的ActionForm乱码问题以及Servlet全局过滤器的转义编码处理是Java Web开发中常见的字符编码问题。在开发基于Struts的Web应用时,乱码主要出现在三个方面:页面显示乱码、参数传递乱码以及国际化资源文件...

    struts中静态ActionForm基本验证

    主要是actionForm的基本验证,重写validate方法,返回actionErrors,然后根据资源文件显示错误。 这是一个demo例子,直接导入eclispe中即可。 并且这部分内容会在相应的博客中介绍,稍后会更新博客。

    struts 视频 struts视频 actionform

    1. **Struts架构**:讲解Struts的核心组件,如Action、ActionForm、ActionServlet、配置文件(struts-config.xml)以及它们之间的交互机制。 2. **MVC设计模式**:解释MVC模式的基本概念,如何在Struts中实现模型、...

    struts1使用actionform实现表单验证

    ActionForm是Struts1中处理用户输入的核心组件,它负责接收、验证和封装来自表单的数据。在本文中,我们将深入探讨如何利用ActionForm实现表单验证,并在验证失败时追加错误信息。 1. **ActionForm介绍** ...

    提交多行数据到Struts的ActionForm的List属性中

    它继承自org.apache.struts.action.ActionForm接口,并包含多个字段来存储表单中的数据。当用户提交表单时,Struts框架会自动将表单数据填充到ActionForm实例中。 为了提交多行数据,我们通常会在HTML页面中使用多...

    Struts_学习笔记之ActionForm

    Struts学习笔记之ActionForm ActionForm是Struts框架中的一种重要组件,用于封装和处理用户的表单数据。在Struts中,ActionForm是继承自JavaBeans的,主要用于处理用户的表单数据和业务逻辑。下面是ActionForm的...

    Struts Hibernate Spring 集成开发宝典 actionform

    4. **使用ActionForm**: 将Spring的ApplicationContext引入Struts,使ActionForm能够通过依赖注入获取SessionFactory,然后在业务逻辑中调用Hibernate的方法进行数据库操作。 5. **配置过滤器**: 设置Struts与Spring...

    Struts高级开发_动态ActionForm.avi

    ActionForm是Struts框架中的一个重要组件,主要用于处理用户从视图层提交的数据。在传统的Struts开发中,ActionForm类通常用于封装请求参数并传递给业务逻辑层进行处理。 动态ActionForm的概念是为了提高代码的灵活...

    [摘]Struts 学习笔记之ActionForm

    ActionForm是Struts框架中一个关键组件,用于处理用户从视图层提交的数据,并与控制器进行交互。这篇学习笔记将深入探讨ActionForm的作用、使用方法以及它在Struts架构中的位置。 在MVC模式中,ActionForm扮演了...

    struts中配置动态ActionForm

    最近自学java中的框架-struts写了一些小例子,这都是很经典的程序,如果大家瞧得起要下载去看看,顺便给俺找找不足的地方。我的qq 821865130 email qingtian_hechen@163.com 希望大家能多多给我帮助。在此谢谢各位!...

    ActionForm

    【ActionForm】是Java Web开发中的一个概念,主要在Struts框架中被广泛使用。它是一种模型层对象,用于接收用户从视图层(通常是一个HTML表单)传递过来的数据,并将这些数据转发到控制器(Controller)进行业务逻辑...

    Struts2框架ActionForm自动填充表单

    ActionForm在早期的Struts1中被广泛用于接收和验证用户输入,但在Struts2中,这个概念已经被更先进的模型驱动机制所取代。不过,这里提到的"ActionForm自动填充表单"可能是指Struts2中的一种特性,即模型驱动...

    struts的教程.doc

    Struts ActionForm Bean捕获表单数据 11 Struts的其他组件 12 Validation Framework for Struts 12 Struts TagLib 12 BeanUtils 12 Collections 13 Digester 13 Struts配置文件简介 13 有关Struts ...

    Struts中不同的Action和ActionForm组合.rar

    在这个名为“Struts中不同的Action和ActionForm组合.rar”的压缩包中,主要探讨的是Struts框架中Action和ActionForm的组合使用方式,以及它们在处理用户请求和数据验证过程中的作用。以下是对这个主题的详细解释。 ...

    struts1和struts2区别

    - **Struts1**:使用ActionForm对象捕获输入,所有ActionForm需继承基类,可能导致重复类的创建。 - **Struts2**:可以直接使用Action的属性作为输入属性,支持更丰富的数据结构,如rich对象类型,并且支持...

    struts1和struts2的区别

    通过上述对比可以看出,Struts2相比Struts1在很多方面进行了改进和优化,尤其是在灵活性、可测试性以及对现代Web开发的支持上有着显著的优势。尽管如此,在某些特定的应用场景下,Struts1可能仍然有其适用之处。选择...

    转:struts1与struts2的区别

    - **Struts1**: Struts1使用`ActionForm`对象来捕获输入数据,所有`ActionForm`对象必须继承自基类。这种设计模式可能会导致代码冗余,因为开发者需要为每种类型的输入数据创建额外的类。 - **Struts2**: Struts2...

Global site tag (gtag.js) - Google Analytics