`
黑猪王子
  • 浏览: 131582 次
  • 性别: Icon_minigender_1
  • 来自: 云南
社区版块
存档分类
最新评论

对于struts里的各种ActionForm的一些比较

阅读更多
以前没注意struts里的ActionForm是怎样,每次拿个 DynaValidateForm就上去了
现在开始回归基础,务实的想写写个非应付式的项目,锻炼下自己,把问题都看透一些


1,
关于静态ActionForm和动态DynaActionForm,
网上有很多比较,两者区别很明显的是一个需要自己写出class出来,后者可以在xml配置,struts根据xml生成,相应的ActionForm

动态ActionForm可以省下很多ActionForm类,而且由于是写在XML,不想静态类,稍做修改就需要重启服务器,但是会有一个小问题,以后都是用DynaForm.get(String)这样取类了,没有ActionForm的getter了,这样写代码的时候,因为编译器还没智能到可以帮你检查出String是不是你想要的那个,所以会容易出错一些

2,ActionForm和ValidatorForm的区别[动态的一样区别]

ValidatorForm是ActionForm的一个子类,ValidatorForm重写了validate()方法(当然也增加了方法),可以支持validator框架的xml验证了,会很方便的省下很多java验证代码

3,ValidatorForm和ValidatorActionForm
这两者去区别很微小,
后者是前者子类,
看源代码可以发现后者只是将前者的
public String getValidationKey(ActionMapping mapping,
        HttpServletRequest request) {
        return mapping.getAttribute();
    }

重写成了
  public String getValidationKey(ActionMapping mapping,
        HttpServletRequest request) {
        return mapping.getPath();//仅此行不同
    }

表现出来的也就是在使用validate框架的时候就是在
<form name="XXXForm">
前者是看的form

<form name="/XXXPath">
后者看到的是Action的path

4,最后要提一下Map-backed ActionForm
它是在ActionForm需要动态扩充的时候使用的
下文转自本人收藏的一部struts学习笔记中,作者不详,不好意思了
/********************我是长长的分割线**********************************/
有的時候您的表單內容可能是由程式動態產生的,這時候表單上的欄位與參數事先並無法得知,因而無法事先決定好 ActionForm 的屬性,在Struts 1.1中,您可以使用Map-backed ActionForm,這樣的ActionForm使用Map來儲存表單的欄位值,一個例子如下:

UserForm.java
package onlyfun.caterpillar;import java.util.*; import javax.servlet.http.*; import org.apache.struts.action.*;public class UserForm extends ActionForm {     protected Map map = new HashMap();    public void setValue(String key, Object value) {         map.put(key, value);     }    public Object getValue(String key) {         return map.get(key);     }    public Map getMap() {         return map;     }    public void reset(ActionMapping mapping,                       HttpServletRequest req) {         map.clear();     } }

在Action類別中,您可以如下面的方式來取值:

LoginAction.java
package onlyfun.caterpillar; import javax.servlet.http.*; import org.apache.struts.action.*; public class LoginAction extends Action {     public ActionForward execute(ActionMapping mapping,                                 ActionForm form,                                 HttpServletRequest request,                                 HttpServletResponse response)                                    throws Exception {         UserForm userForm = (UserForm) form;         String name =                  (String) userForm.getValue("name");         String password =                  (String) userForm.getValue("password");         .....    } }







/********************我是长长的分割线**********************************/以上均本人新手探索,欢迎智者指正批评



最后,本人对自己的今天的小学习做个小总结:
1,看源代码很爽,有种偷窥的快感,哈哈,下次多看看
2,终于了解动态构造类是怎么干的了,一直想不通怎么给java类动态加属性,原来可以像Map-backed ActionForm一样,用map实现,小小猜测,欢迎指正
1
0
分享到:
评论

相关推荐

    struts1使用actionform实现表单验证

    Struts1是一个经典的Java Web框架,它在早期的Web应用开发中被广泛应用。ActionForm是Struts1中处理用户输入的核心组件,它负责接收、验证和封装来自...理解并掌握这一技术,对于开发基于Struts1的Web应用至关重要。

    Struts_学习笔记之ActionForm

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

    struts 视频 struts视频 actionform

    ActionForm是Struts框架中的一个重要组件,它是模型层与控制器层之间的桥梁,用于处理用户在表单中提交的数据。 在Struts框架中,ActionForm类负责收集、验证和封装来自用户界面的数据。当用户通过HTML表单提交请求...

    struts中ActionForm的validate方法使用小得

    Struts框架是Java Web开发中常用的MVC框架之一,它为开发者提供了一种结构化、易于维护的应用程序构建方式。在Struts中,ActionForm类是处理用户输入...理解并熟练运用这一机制对于开发健壮的Struts应用程序至关重要。

    struts中静态ActionForm基本验证

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

    Struts2框架ActionForm自动填充表单

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

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

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

    Struts Hibernate Spring 集成开发宝典 actionform

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

    struts ActionForm

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

    struts中配置动态ActionForm

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

    [摘]Struts 学习笔记之ActionForm

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

    Struts高级开发_动态ActionForm.avi

    在动态ActionForm中,我们需要理解如何自定义TypeConverter以便处理各种数据类型。 5. **验证逻辑**:ActionForm通常包含验证逻辑,确保用户输入的数据符合业务规则。在动态ActionForm中,验证规则可能需要动态加载...

    struts框架在ActionForm中使用实体对象

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

    ActionForm

    2. `ActionFormUtil.java`: 这可能是一个通用的ActionForm辅助类,提供了一些对ActionForm操作的静态方法,比如验证表单数据、填充默认值或进行数据转换等。 3. `config.xml`: 这是一个配置文件,很可能包含了Struts...

    Struts1和Struts2的区别和对比

    Struts1和Struts2是两个非常著名的Java Web框架,它们在设计模式、可测试性、输入处理和表现层等方面...总的来说,Struts2相对于Struts1在灵活性、可测试性、输入处理和表现层控制上有所改进,使得开发更为高效和便捷。

    struts1.2之ActionForm验证讲解(附视频)

    视频第二部分 下载前请阅读博客文章详细 博文链接:https://dlivan.iteye.com/blog/65870

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

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

    struts课堂资料\第五章(动态ActionForm与控制器)

    对于动态ActionForm,可能需要在运行时动态构建这些映射。 四、总结 "第五章(动态ActionForm与控制器)"的学习重点在于掌握Struts框架中ActionForm和控制器的动态使用,理解它们如何协同工作以处理用户请求并驱动...

    [2]你所不了解的struts1_actionform变得更加灵活

    NULL 博文链接:https://angelnight.iteye.com/blog/551378

Global site tag (gtag.js) - Google Analytics