zoukankan      html  css  js  c++  java
  • 动态ActionFormDynaActionForm

    1,DynaActionForm

          动态ActionForm是为了避免标准ActionForm膨胀而设计的,使用动态ActionForm可以获得标准ActionForm的所有功能,动态actionForm的配置,动态actonForm的配置中type使用的是struts提供的一个动态ActionForm类----DynaActionForm类,DynaActionForm类继承了ActionForm。

    <form-beans>
      <form-bean name="dynaForm" type="org.apache.struts.action.DynaActionForm">
             <form-property name="username" type="java.lang.String"></form-property>
             <form-property name="age" type="java.lang.Integer"></form-property>
      </form-bean>  
    </form-beans>

    在该配置文件中form-bean的属性值是struts中的一个DynaActionForm类,该类继承了ActionForm类

    form-property配置的是表单的字段,其中name要与表单中的name相同,type指的是表单中name的数据类型,在form-property中还可以像标准ActionForm那样实现reset设置初始值,或者实现validate实现验证,但是在动态表单中采用的是动态验证,也就是使用的是验证框架,需要加载一个验证插件,在验证插件中配置验证。

    设置了动态ActionForm后就可以不用在写继承ActionForm的类了。直接在Action中使用动态ActionForm即可。

    DynaActionForm采用的是map集合以键值对的形式存放表单数据

    Action中的代码:

    /**
     * 测试动态ActionForm
     * @author Administrator
     *
     */
    public class DynaActionFormTestAction extends Action {

     @Override
     public ActionForward execute(ActionMapping mapping, ActionForm form,
       HttpServletRequest request, HttpServletResponse response)
       throws Exception {
      DynaActionForm daf = (DynaActionForm)form;
      String username = (String)daf.get("username");
      Integer age = (Integer)daf.get("age");
      System.out.println("username=" + username);
      System.out.println("age=" + age);
      return mapping.findForward("success");
     }

    }

    jsp页面上可以使用el表达式取出:

    <body>
     用户名称:${dynaForm.map.username }<br>
     年龄:${dynaForm.map.age }<br>
    </body>

  • 相关阅读:
    html禁止手机页面放大缩小
    <httpProtocol/>配置http协议头
    C# 并行编程 之 并发集合 (.Net Framework 4.0)(转)
    JavaScript随机排序算法1
    用户消息处理方式
    后台单用户在线,简单处理
    使用 Intel HAXM 为 Android 模拟器加速,媲美真机(转)
    解决Android SDK Manager下载太慢问题(转)
    如何正确并完全安装Visual Studio 2015企业版本?(转)
    C# XML流操作简单实例
  • 原文地址:https://www.cnblogs.com/jinzhengquan/p/1953849.html
Copyright © 2011-2022 走看看