SSH:Struts1框架(ActionForm注册类型自动转换)

原创 2015年11月19日 16:08:24

测试ActionForm注册类型自动转换

 * 一般的数据类型都可以自动进行转换;

* boolean:yes,1,on,true都会转换成True类型,而且忽略大小写,其他清空转换成false
 * java.sql.Date 默认的转换格式是 yyyy-MM-dd;
 * java.util.Date 默认不可以转换;
 * 自定义转换器的实现步骤:
  1. 定义一个实现了Converter接口的类,并且实现convert方法;
  2. 定义一个servlet来注册转换器,注册转换器引用ConvertUtils类的静态方法register(转换器,转换类型);
   * ConvertUtils.register(new ConvertTestAction(), java.util.Date.class);
  3. 配置servlet时注意配上这个<load-on-startup>5</load-on-startup>值要大于0,因为这个servlet要求在tomcat启动时初始化;
  4. 第二种方法注册转换器通过实现PlugIn接口,在struts-config.xml中配置上<plug-in className="com.gzbb.dynaForm.action.ConvertTestPlus"></plug-in>
 * 如果对应的Converter不明白,可以查看相应的类文件 org.apache.commons.beanutils.Converter;
              org.apache.commons.beanutils.converters.*;

实现方法一:

servlet初始化时注册

1.     实现org.apache.commons.beanutils.Converter接口,

         @Override

    public Object convert(Class type, Object value) {

        System.out.println("UtilDateConvert.value="+value);

        if(value==null){

            return value;

        }

        if(value instanceof Date){

            return value;

        }

        Date d=null;

        if(value instanceof String){

            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

            try {

                d = sdf.parse(value.toString());

            } catch (ParseException e) {

                e.printStackTrace();

            }

        }

        return d;

    }

 

2.写一个servlet注册转换器,并实现init()方法

       @Override

    public void init() throws ServletException {

        //注册转换器

       ConvertUtils.register(new UtilDateConvert(), Date.class);

    }

3在web.xml中配合servlet

<servlet>

    <servlet-name>UtilDateConverterInitWithervlet</servlet-name>      <servlet-class>com.zsw.struts.UtilDateConverterInitWithervlet</servlet-class>

    <!-- 使tomcat启动时初始化 -->

    <load-on-startup>3</load-on-startup>

  </servlet>

 

实现方法二:

使用PlugIn注册,

1.实现org.apache.commons.beanutils.Converter接口,     

@Override

    public Object convert(Class type, Object value) {

        System.out.println("UtilDateConvert.value="+value);

        if(value==null){

            return value;

        }

        if(value instanceof Date){

            return value;

        }

        Date d=null;

        if(value instanceof String){

            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

            try {

                d = sdf.parse(value.toString());

            } catch (ParseException e) {

                e.printStackTrace();

            }

        }

        return d;

    }

2.实现org.apache.struts.action.PlugIn接口。

    @Override

    public void init(ActionServlet arg0, ModuleConfig arg1)

           throws ServletException {

       //注册转换器

       ConvertUtils.register(new UtilDateConvert(), Date.class);

    }

3.在struts-config.xml中配置:

<plug-in className="com.zsw.struts.UtilDateConverterInitWithPlugin" />




版权声明:本文为博主原创文章,未经博主允许不得转载。

SSH:Struts1框架(动态ActionForm)

使用ActionForm可以给开发者在处理HTML表单时带来极大的帮助,它简化了代码的编写,并提供了自动的数据验证。但是,ActionForm也存在几个非常明显的缺点。  首先,如果ActionFo...
  • qq_27550755
  • qq_27550755
  • 2015年11月19日 15:48
  • 667

struts1.x中ActionForm的作用

一:通常是用来取网页中html标签的值,概念性的东西就不说了。通常就是ActionForm中设置变量属性和相应得getset方法。之后再action中调用actionFrom得到页面的值。我们只需写好...
  • wangzihu
  • wangzihu
  • 2012年05月06日 16:11
  • 6663

测试ActionForm注册类型自动转换

测试ActionForm注册类型自动转换*boolean:yes,1,on,true都会转换成True类型,而且忽略大小写,其他清空转换成falase*Date类型的转换:       *如果是jav...
  • sz_bdqn
  • sz_bdqn
  • 2009年01月01日 14:30
  • 920

struts1的actionform

Struts 中定义了一些JavaBeans,主要是以ActionForm为父类扩展开来的,如下图:     ① org.apache.struts.action包中 public ...
  • huihui870311
  • huihui870311
  • 2016年03月31日 08:42
  • 208

Struts1 页面提交到ActionForm,form为null

分析:既然知道form为null,说明,能够进入到action里面去,为什么为空呢?可能性最大的一个原因,就是:formbean没有和struts中的action配置文件关联起来。1、检查,strut...
  • qwdafedv
  • qwdafedv
  • 2015年07月31日 15:46
  • 2018

struts1.x数据从前台jsp到后台actionform中文乱码

struct1.x在action操作加上request.setCharacterEncoding("UTF-8");
  • Una1116
  • Una1116
  • 2014年06月09日 07:32
  • 1257

SSH:Struts1框架(几种常用的Action)

除了基本的Action 之外, Struts 还提供了几个其他类型的Action ,这些Action 大大 丰富了Struts 的功能。下面介绍如下儿个常用的Action 。 • DispatchAc...
  • qq_27550755
  • qq_27550755
  • 2015年11月19日 12:37
  • 442

使用动态ActionForm-DynaActionForm(原理)

在Struts框架中,ActionForm对象用来包装HTML表单数据,并能动态返回用于显示给用户的数据,自定义的ActionForm必需符合JavaBean规范,并继承Struts的ActionFo...
  • wucuilan827
  • wucuilan827
  • 2007年04月16日 15:50
  • 1638

struts1配置动态actionForm

struts-config.xml配置:
  • xuxiaocheng1
  • xuxiaocheng1
  • 2013年07月21日 17:59
  • 1287

Struts1.2中ActionForm与ValidatorForm、DynaActionForm的区别

(一)ActionForm和ValidatorForm区别:     一个Form继承了ValidatorForm 就不用写具体的验证,但是需要提供: validation-rules.xml ...
  • lzghxjt
  • lzghxjt
  • 2015年05月17日 18:19
  • 959
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:SSH:Struts1框架(ActionForm注册类型自动转换)
举报原因:
原因补充:

(最多只允许输入30个字)