`
hbuxzy
  • 浏览: 24547 次
文章分类
社区版块
存档分类
最新评论

Struts中动态ActionForm与静态ActionForm有什么区别?

 
阅读更多
Struts架构中,ActionForm负责记录和维护视图中的数据,提供Model(模型层)和View(视图层)使用,因此可疑将它看作是模型和视图之间的中介.如果需要,还可疑启动ActionForm对数据实现验证及过滤功能,即只有通过ActionForm验证的数据才能够发送到ActionBean进行后续处理.
ActionForm是一种特殊的JavaBean,控制器组件RequestProcessor利用其属性存取方法setter/getterXXX()实现初始话.在初始化完毕后,还能调用它的validate()方法来对请求参数进行验证,通常是检查数据格式是否合法,并在验证失败的时候通过错误管理机制加以处理.
但是ActionForm本身也存在一个缺点:由于ActionForm对应于Http请求表单,所以在开发设计大型Struts应用时,随着页面和请求表单数目的增多,Struts应用程序中需要定义打量的ActionForm类.此外,同一类型的表单字段可能出现在不同表单,进而出现在多个ActionForm中,这会造成多个ActionForm类之间不能共用相同的验证代码,例如:在登录页面中有用户和密码字段,而在注册页面童谣也有密码和用户字段.其对应的名称及操作应该是类似的.
当然可疑考虑开发一个巨大的ActionForm类,使之同时对应多个表单,但这种过强的聚合性会导致代码更难以维护和重用.
为了彻底解决这种问题,Struts1.1中提出了动态ActionForm(DynaActionForm),同时也提供了Validator验证框架实现动态验证表单(DynaValidatorForm)的功能.
实际上,引入动态表单DynaActionForm的目的在于减少ActionForm的数目,因此也常将ActionForm称为静态表单以示区别.

分享到:
评论

相关推荐

    struts中静态ActionForm基本验证

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

    Struts高级开发_动态ActionForm.avi

    在动态ActionForm中,这部分逻辑可能会比静态ActionForm更复杂。 7. **实际应用示例**:通过实际的项目案例,演示如何在代码中实现动态ActionForm,包括Action类的设计、ActionForm的创建和数据绑定、以及错误处理...

    ActionForm

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

    struts动态表单实例

    3. ** DynaActionForm**: 这是Struts中的动态表单类,相比于传统的ActionForm,DynaActionForm不需要预先定义字段。它的字段可以在运行时动态添加,这使得表单的结构可以根据服务器端的业务逻辑改变。 4. **Struts-...

    Struts 之旅 - 动态表单

    2. **ActionForm与动态字段**:在ActionForm类中,我们通常定义静态字段来对应静态表单。但对于动态表单,我们需要一种方式来处理不确定数量或类型的字段。可以通过在ActionForm中使用ArrayList或Map来存储这些动态...

    struts1.x和struts2.x区别

    ### Struts1.x与Struts2.x的主要区别 在深入探讨Struts1.x与Struts2.x的区别之前,我们先来了解一下这两个框架的基本背景。Apache Struts是用于构建企业级Web应用程序的开源框架,它提供了MVC(模型-视图-控制器)...

    Struts1框架执行原理(附Action、ActionServlet、ActionForm工作机制)

    5. `ActionServlet`调用`Action`类的`execute`方法,将`ActionForm`对象作为参数传递,`Action`类在此处处理业务逻辑,这可能包括与数据库交互、调用服务层方法等。 6. `Action`执行完成后,会返回一个`Action...

    Struts动态表单验证Demo视频

    动态表单验证指的是在运行时根据业务需求动态地生成验证规则,而不是静态地硬编码在程序中。这种灵活性使得开发者可以更方便地调整和扩展验证逻辑,而不必修改大量代码。在Struts框架中,动态表单验证通常通过...

    Struts中文乱码解决方案

    ActionForm 是 Struts 框架中用于接收和封装用户请求数据的类。如果你在 ActionForm 的 `reset` 方法中遇到中文乱码,可以在该方法内设置请求的字符编码: ```java public void reset(ActionMapping mapping, ...

    struts1的服务器端验证

    然而,如果在ActionForm中使用了静态变量或成员变量,可能会引入线程安全问题。因此,在编写ActionForm时,应避免在其中存储任何状态信息,除非你确保了适当的同步控制。 此外,Struts1提供了一种称为"Validator...

    strut培训--深入struts

    在Struts框架中,Model 2与MVC概念几乎可以等价。 在传统的Model 1模式下,业务逻辑和表现逻辑混杂在一起,通常在JSP页面中,导致紧耦合和维护困难。相比之下,Model 2将业务逻辑(模型)与用户界面(视图)分离,...

    Struts2和Struts1的不同

    ### Struts2与Struts1的主要区别 #### 一、Action设计模式的差异 **Struts1:** 在Struts1框架中,Action是单例模式的,这意味着在整个应用程序生命周期中,只存在一个Action实例。这主要是为了提高性能,但这也...

    Struts Validator验证框架详细讲解.txt

    相比于Struts内置的ActionForm Bean验证方式,Struts Validator提供了更灵活、更强大的验证功能,能够处理复杂的验证逻辑,并且可以与Spring和Hibernate等其他框架无缝集成,形成完整的Struts2 + Spring + Hibernate...

    Struts-tree.rar_java 动态树_struts tr_struts tree_tree_tree menu in

    Struts-tree.rar 是一个与Java相关的压缩包,主要用于在基于Struts框架的Web应用程序中实现动态树形结构。Struts是Apache软件基金会的一个开源项目,它是一个MVC(Model-View-Controller)框架,用于构建可维护性高...

    华为招聘Java面试题:概念题:1. 描述Struts体系结构?对应各个部分的开发工作主要包括哪些?2. JSP有哪些内置对象和动作?它们的作用分别是什么?……

    根据提供的华为Java面试题,我们将深入探讨两个主要概念:Struts框架体系结构及其开发工作,以及JSP中的内置对象和动作。 ### 1. Struts框架体系结构 #### 概述 Struts是一个用于构建企业级Java Web应用程序的开源...

    基于MVC模式Struts框架

    - 在Struts中,视图不仅仅限于静态展示,还可以包含动态交互元素,如下拉列表、文本框等,这些元素的数据通过ActionForm对象进行管理。 2. **实现模型**: - **Action**:编写具体的业务逻辑处理类,继承自`org....

    struts实现新闻发布系统

    在这个“Struts实现新闻发布系统”中,我们看到该系统具备多数据库支持和静态页面生成功能,这些都是提高系统性能和可扩展性的关键特性。 1. **Struts框架**: Struts框架主要由Action、ActionForm、ActionMapping...

    Struts1 MVC实例

    在描述的实例中,可能有对应于查询、追加、修改、删除操作的ActionForm类。 2. **Action**:Action是处理用户请求的核心类,它包含了业务逻辑。每个Action对应一个特定的用户操作,比如查询用户、添加新记录等。...

Global site tag (gtag.js) - Google Analytics