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

    package converter;
    
    import java.util.Map;
    
    import org.apache.struts2.util.StrutsTypeConverter;
    
    import bean.Point;
    
    /**
     * 自定义类型转换器步骤 :
     *  1,创建转换器类,封装转换操作(String<->自定义类型)
     *    1)实现TypeConveter接口
     *    2)继承自DefaultTypeConverter类
     *    3)继承自StrutsTypeConveter抽象类
     *  2,注册转换器
     *        全局转换器
     *        可转换所有Action中属性值。
     *        在src下创建xwork-conversion.properties
     *        内容:类型名=转换器全路径名
     *     局部转换器:
     *        为某一Action中属性值转换。
     *        action类同包中:
     *          Action类名-conversion.properties
     *          内容:属性名=转换器全路径名 
     *
     */
    public class PointConverter extends StrutsTypeConverter{
        /**
         * String->Object
         * @param val 字符串数组,其存储客户端请求参数
         */
        public Object convertFromString(Map context, String[] val, Class toType) {
            //获取客户端提交的坐标字符串
            String pointStr = val[0];
            //将字符串转换为Point对象
            int x = Integer.parseInt(pointStr.split(",")[0]);
            int y = Integer.parseInt(pointStr.split(",")[1]);
            Point p = new Point();
            p.setX(x);
            p.setY(y);
            return p;
        }
        /**
         * Object->String
         */
        public String convertToString(Map context, Object object) {
            Point p = (Point)object;
            return "["+p.getX()+","+p.getY()+"]";
        }
    
    }
    package converter;
    
    import java.text.DateFormat;
    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    import java.util.Map;
    
    import org.apache.struts2.util.StrutsTypeConverter;
    
    import com.opensymphony.xwork2.conversion.TypeConversionException;
    
    /**
    *String<->Date
    **/
    public class DateConverter extends StrutsTypeConverter{
    
        private DateFormat[] dfs = {
                new SimpleDateFormat("yyyy-MM-dd"),
                new SimpleDateFormat("yyyy年MM月dd日"),
                new SimpleDateFormat("yyyy.MM.dd"),
                new SimpleDateFormat("MM/dd/yyyy")
        };
        
        public Object convertFromString(Map arg0, String[] val, Class arg2) {
            String dateStr= val[0];
            for(int i=0;i<dfs.length;i++) {
                try {
                    return dfs[i].parse(dateStr);
                } catch (ParseException e) {
                    e.printStackTrace();
                }
            }
            throw new TypeConversionException();
        }
    
        public String convertToString(Map arg0, Object object) {
            Date date = (Date)object;
            return dfs[0].format(date);
        }
    
    }
  • 相关阅读:
    mariadb配置双主多从
    mq系列rabbitmq-02集群+高可用配置
    mq系列rabbitmq-01简介,安装,api操作
    持续集成框架jenkins介绍02-持久集成git仓库+maven项目
    git仓库相关知识03-搭建远程仓库服务器
    RecyclerView瀑布流优化方案探讨
    Android实际开发bug大总结
    Android打造万能自定义阴影控件
    PagerAdapter深度解析和实践优化
    Java博客大汇总
  • 原文地址:https://www.cnblogs.com/cnjava/p/2687426.html
Copyright © 2011-2022 走看看