zoukankan      html  css  js  c++  java
  • 自定义类型转换器

     1 一、自定义类型转换器
     2     1、编写一个类,继承com.opensymphony.xwork2.conversion.impl.DefaultTypeConverter
     3     2、覆盖掉其中的public Object convertValue(Map<String, Object> context, Object value,Class toType)
     4             context:OGNL表达式的上下文
     5             value:实际的值。用户输入的都是字符串,但他是一个String数组。
     6             toType:目标类型

          import java.text.DateFormat;
          import java.text.ParseException;
          import java.text.SimpleDateFormat;
          import java.util.Date;
          import java.util.Map;

          import com.opensymphony.xwork2.conversion.impl.DefaultTypeConverter;

     7     public class DateConvertor extends DefaultTypeConverter {
     8         /*
     9          context:ognl表达式的上下文
    10          value:用户输入的值( 保存数据时)或者模型中的属性。用户输入的值是String数组
    11          toType:目标类型
    12          */
    13         @Override
    14         public Object convertValue(Map<String, Object> context, Object value,
    15                 Class toType) {
    16             DateFormat df = new SimpleDateFormat("yyyy/MM/dd");
    17             if(toType==Date.class){
    18                 //2013/05/31----->java.util.Date 保存数据时
    19                 String strValue = ((String[])value)[0];
    20                 try {
    21                     return df.parse(strValue);
    22                 } catch (ParseException e) {
    23                     throw new RuntimeException(e);
    24                 }
    25             }else{
    26                 //java.util.Date----->2013/05/31 获取数据时
    27                 Date dValue = (Date)value;
    28                 return df.format(dValue);
    29             }
    30         }
    31     }
    32     3、注册类型转换器
    33         3.1局部类型转换器:只对当前的Action有效
    34         具体做法:在动作类相同的包中,建立一个名称是“动作类名-conversion.properties”的配置文件,
    35             文件中增加以下内容:要验证的字段=验证器的类全名
    36                     birthday=cn.itcast.convertor.DateConvertor
    37         3.2全局类型转换器:对所有的Action都有效
    38         具体做法:在src  编译后会在WEB-INF/classes目录下,建立一个名称为"xwork-conversion.properties"的配置文件,
    39             文件中增加以下内容:目标类型全名=验证器的类全名
    40                     java.util.Date=cn.itcast.convertor.DateConvertor
    41         
    42         
    43         
    44     注意:如果转换失败,Struts2框架会寻找name=input的结果页面
  • 相关阅读:
    C# Apache Thrift Demo
    C#指针使用demo
    C#中指针使用总结
    fastjson之JSONObject、JSONArray
    fastjson使用
    ObjectMapper使用
    ObjectMapper将json转对象报错处理
    rabbitmq-channel方法介绍
    rabbitmq不同模式的交换机使用
    activemq总结
  • 原文地址:https://www.cnblogs.com/friends-wf/p/3766308.html
Copyright © 2011-2022 走看看