文章出處

一、自定義轉換器

定義一個類DataConverter 該類繼承自StrutsTypeConverter,定義了兩個抽象方法,用于不同的轉換方向,分別如下:

① public Object convertFromString(Map context, String[] values, Class toType) 將一個或多個字符串值轉換成指定的類型。參數context是表示OGNL上下文的Map對象,參數values是要轉換的字符串值,參數toType是要轉換的目標類型

②public String convertToString(Map context, Object obj):將指定對象轉換為字符串,參數context是表示OGNL上下文的Map對象,參數Object是要轉換的對象

public class DataConverter extends StrutsTypeConverter{

    //支持轉換的多種日期格式
    private final DateFormat[]dfs=
        {
            new SimpleDateFormat("yyyy/MM/dd"),
        };
    /*
     * 將指定格式字符串轉換為日期類型
     */
    @Override
    public Object convertFromString(Map context, String[] values, Class toType) {
        //獲取日期的字符串
        String value=(String)values[0];
        //遍歷日期支持格式,進行轉換
        for (int i = 0; i < dfs.length; i++) {
            try {
                return dfs[i].parse(value);
            } catch (Exception e) {
                continue;
            }
        }
        //如果遍歷完畢后若沒有轉換成功,表明出現 轉換異常
        throw new TypeConversionException();
    }

    /*
     *將日期轉換為指定格式字符串
     */
    @Override
    public String convertToString(Map context, Object obj) {
        //輸出的格式是yyy-MM-dd
        return new SimpleDateFormat("yyyy/MM/dd").format(obj);
    }

UserInfo實體類:

 

struts.xml:

 <constant name="struts.devMode" value="true"></constant>
    <package name="default" namespace="/" extends="struts-default">
    
        <action name="adduser" class="cn.happy.action.UserAction">
       
           <result name="success">ok.jsp</result> 
           <result name="input">index.jsp</result>
        </action>

二、配置自定義類型轉換器

1、應用于特定類的類型轉換器 在特定類的相同目錄下創建一個名為ClassName-conversion.properties的屬性文件

在UserAction-conversion.properties中進行添加節點,針對于出生日期Date類型

 2、應用于全局范圍的類型轉換器 在src目錄創建xwork-conversion.properties

 

實現效果:

 

三、若用戶輸入的日期與自定義類型不一致時,那么我們如何給出錯誤提示呢?那么這里即可用到了國際化,在struts.xml中進行添加一個常量

 

其次呢,在src下創建message.properties,并添加Name、Value

最后,在index.jsp中可使用fielderror在頁面顯示信息

實現效果如下:

 


文章列表


不含病毒。www.avast.com
arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()