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);

    }



}

你可能感兴趣的:(struts2)