博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
struts1——静态ActionForm与动态ActionForm
阅读量:5809 次
发布时间:2019-06-18

本文共 990 字,大约阅读时间需要 3 分钟。

      在struts1中,我们可以使用ActionForm来获取从client端提交上来的数据,并通过action配置中的name属性,将某个ActionForm配置到某次请求应答的Action中,作为本次请求应答的数据传输介质,ps,其实还是侧重于数据在客户端的获取,因为赋值部分框架帮我们做好了。

          对于ActionForm的使用,我们有两种方式:一是通过建立类的方式,二是直接写入配置文件的方式。

一,静态ActionForm的使用

            首先我们需要定义类,注意这个类要继承ActionForm类:

       定义好类之后,将我们要获取的客户端数据作为成员变量写入类中,确保get后面的名称首字母小写后,与我们客户端提交的数据的name名称一致。

       之后,在struts的配置文件中配置此类:

    为了关联ActionForm与Action关系,还需要在Action的name配置中,指明此Action使用的是哪个form-bean:

 

 在Action中获取request中的数据,只需强转成我们定义的ActionForm类即可:

二,动态ActionForm使用

         如果我们系统比较大的话,试想一下,我们要为每一个Action配置一个ActionForm类来实现数据的传递,这样的话,ActionForm就比较多。这时候,我们可以使用动态ActionForm将ActionForm配置在配置文件中.

       

      动态ActionForm的type都要配置成 :   type="org.apache.struts.action.DynaActionForm" ,将类的property指明类型之后配置到form-property中。

   服务端取值:

     

      动态ActionForm的值都存储到一个map中,key-value形式,key为我们配置文件中的form-property的name的值,得到value之后进行强转。

  表现层取值:

三,静态ActionForm跟动态ActionForm的比较

1,两种ActionForm都能实现相同的功能:比如数据验证,reset数据。

2,使用类的方式缺点是项目大的话,类较多,每次增加,都要重新编译;但是Action中取值简单;

3,使用动态ActionForm省去了类,只需在配置文件中配置,方便修改,缺点是取值不方便,map里面get的时候,如果key指明的不正确,容易出错。

转载地址:http://mnnbx.baihongyu.com/

你可能感兴趣的文章
Spark之SQL解析(源码阅读十)
查看>>
Android图片添加水印图片并把图片保存到文件存储
查看>>
C#字符串的不变性
查看>>
前端路由简介以及vue-router实现原理
查看>>
比特币系统采用的公钥密码学方案和ECDSA签名算法介绍——第二部分:代码实现(C语言)...
查看>>
分享15款很实用的 Sass 和 Compass 工具
查看>>
AMD优势: 与众不同 选择丰富
查看>>
玩转高性能超猛防火墙nf-HiPAC
查看>>
简单按日期查询mysql某张表中的记录数
查看>>
自动化部署之jenkins发布PHP项目
查看>>
C/C++编程可用的Linux自带工具
查看>>
如何判断webview是不是滑到底部
查看>>
海贼王十大悲催人物
查看>>
org.hibernate.MappingException: No Dialect mapping for JDBC type: -1 搞定!
查看>>
热点热词新闻资讯API开放接口(永久免费开放)
查看>>
8.1_Linux习题和作业
查看>>
11.排序算法_6_归并排序
查看>>
Redis redis-cli 命令列表
查看>>
.NET框架设计—常被忽视的框架设计技巧
查看>>
BigDecimal 舍入模式(Rounding mode)介绍
查看>>