struts2的自定義類型轉換器

一、java.util.Date類型的屬性能夠接受格式爲2009-07-20的請求參數,但若是咱們須要接收格式爲20091221的請求參數,咱們必須定義類型轉換器,不然struts2沒法自動完成類型轉換。java

import java.util.Dateide

public class HelloWorldAction()this

{orm

  private Date createtime;字符串

  public Date getCreatetime()get

 {it

  return createtime;io

 }ast

 public void set Createtime(Date createtime)form

 {

  this.createtime = createtime;

 }

}

public class DateConverter extends DefaultTypeConverter

{

 @Override public Object converValue(Map context, Ovject value,Class to Type)

 {

  SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMdd");

  try{

        if(to Type == Date.class)

         {

            //當字符串向Date類型轉換時

            String[] params = (String) value;//Request getParameterValues()

            return dateFormat.parse(params[0]);

         }

         else if (to Type == String.class)

         {

             //當Date轉化成字符串時

             Date date = (Date) value;

             return dateFormat format(date);

         }

     }catch(ParseExceprion e)

     {

       return null;

     }

 }

將上面的類型轉換器註冊爲局部類型轉換器

在Action類所在的包下放置ActionClassName-conversion .properies文件,ActionClassName是Action的雷鳴,後面的-conversion.properties是固定寫法,對於本例而言,文件的名稱爲HelloWorldAction-comversion.properties。

在properties文件中的內容爲:

屬性名稱=類型轉換器的全類名

對於本例而言,HelloWorldAction-comversion.properties文件中的內容爲:createtime=cn.itcase.conversion.DateConverter.

}

二、將上面的類型轉換器註冊爲全局類型轉換器:

在WEB-INF/CLASSES下放置xwork-conversion.properties文件。在properties文件中的內容爲:

待轉換的類型=類型轉換器的全類名

對於本例而言,xwork-conversion.properties文件中的內容爲:

java.util.Date=cn.itcast.conversion.DateConverter

相關文章
相關標籤/搜索