struts2示例代碼-自定義局部類型轉換器和自定義全局類型轉換器

局部把String類型的birthday變量轉換成Date類型

新建一個class,在Superclass中點擊Browse,在文本框裏輸入DefaultTypeConverter,最好選擇com.opensymphony.xwork2.conversion.impl這一項,

新建好class後,右鍵Source裏選擇Override/Implement Methods選擇convertValue(Map,Object,Member,String,Object,Class)

package cn.type.converter; //轉換器的方法類

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Map;
import com.opensymphony.xwork2.conversion.impl.DefaultTypeConverter;

public class DateTypeConverter extends DefaultTypeConverter {
    public Object convertValue(Map context, Object value, Class toType) {
        // TODO Auto-generated method stub
        System.out.println("已經進入類型轉換器");
        SimpleDateFormat dateFormat=new SimpleDateFormat("yyyyMMdd");
        try{
            if(toType==(Date.class)){ //字符串向Date轉換時
                String[] paramss= (String[]) value;
                return dateFormat.parse(paramss[0]); //以數組形式轉換變量,當變量爲一個時         
            }
            else if(toType==(String.class)){ //Date向字符串轉換時
                Date date=(Date) value;
                return dateFormat.format(date);
            }
        }
        catch(ParseException e){}
        return null;
    }

}


package cn.action; //傳參的方法
import java.util.Date;
public class HelloWordAction {
    private Date birthday;
    public Date getBirthday() {
        return birthday;
    }
    public void setBirthday(Date birthday) {
        this.birthday = birthday;
    }
    public String execute() throws Exception{
        return "success";
    }
}

局部轉換器要在要轉換的變量類的同一個文件夾下新建File文件,命名爲變量所在類的名字-conversion.properties

文件內容birthday=cn.type.converter.DateTypeConverter//birthday是要轉換的變量名稱,右邊是重寫的方法的全名,語句後不要加任何標點符號


全局轉換器

只需要把HelloWordAction-conversion.properties改名爲xwork-conversion.properties

並把這個文件放在所有類的根目錄下,比如說src下

文件內容java.util.Date=cn.type.converter.DateTypeConverter

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章