<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆 - 0, 文章 - 264, 評論 - 170, 引用 - 0
    數據加載中……

    webwork類型轉換器,int值越界時的錯誤處理

    webwork中,當從前臺傳遞一個數值,對應action中的數據類型為int時。如果傳遞的值超過int的最大值,比如,傳遞了一個333333333333,那么,在action中獲取到的值,變成了:
    -1674115755。

    原因是:webwork的類型攔截器,對數值進行了轉換。
    如果想讓后臺提示錯誤,那么需要自定義個TypeConverter,當數組越界時,拋出異常,即對應到webwork中的conversionErrors。
    我定義了個針對int類型做特殊處理的攔截器:
     1 public class IntTypeConverter extends WebWorkTypeConverter {
     2 
     3     @Override
     4     public Object convertValue(Map context, Object o, Class toClass) {
     5         if (toClass.equals(java.lang.String.class))
     6             return convertToString(context, o);
     7 
     8         if (o instanceof String[]) {
     9             if (toClass.equals(java.lang.Integer.class)) {
    10                 String[] arrays = (String[]) o;
    11                 int value = Integer.valueOf(arrays[0]);//對數字進行檢測,查看是否越界,如果越界,將自動拋java.lang.NumberFormatException
    12             }
    13             return convertFromString(context, (String[]) o, toClass);
    14         }
    15         if (o instanceof String) {
    16             if (toClass.equals(java.lang.Integer.class)) {
    17                 String[] arrays = (String[]) o;
    18                 int value = Integer.valueOf(arrays[0]);//對數字進行檢測,查看是否越界,如果越界,將自動拋java.lang.NumberFormatException
    19             }
    20             return convertFromString(context, new String[]{
    21                     (String) o
    22             }, toClass);
    23         }
    24         else
    25             return super.convertValue(context, o, toClass);
    26     }
    27 
    28     public Object convertFromString(Map map, String as[], Class class1) {
    29         return Integer.valueOf(as[0]);
    30     };
    31 
    32     public String convertToString(Map map, Object obj) {
    33         String result = null;
    34         if (obj instanceof Integer) {
    35             result = String.valueOf(obj);
    36         }
    37         return result;
    38     };
    39 
    40 }
    要讓這個類來代替webwork默認的轉換你還需要在classpath目錄, 一般就是classes目錄放置配置文件
    xwork-conversion.properties:
    java.lang.Integer=IntTypeConverter

    這種方法是對整個application起作用,.
    如果要只對單個action起作用, 在action同一個package寫一個ActionClassName-conversion.properties:
    fieldName=IntTypeConverter

    posted on 2011-11-08 14:57 小一敗涂地 閱讀(726) 評論(0)  編輯  收藏 所屬分類: jersery、struts等web框架相關

    主站蜘蛛池模板: 亚洲AV无码一区二区乱子仑| 丁香五月亚洲综合深深爱| 国产老女人精品免费视频 | 日韩在线一区二区三区免费视频| 一个人看www免费高清字幕| 丁香花在线视频观看免费| 50岁老女人的毛片免费观看| 日韩欧毛片免费视频| 日韩免费视频播放| 亚洲中文字幕无码日韩| 亚洲综合激情另类小说区| 亚洲熟妇无码AV| 一级成人a做片免费| 一级毛片全部免费播放| 午夜一级免费视频| 在线亚洲人成电影网站色www | 亚洲午夜日韩高清一区| 久久久久亚洲精品天堂| 亚洲国产无线乱码在线观看| 成在线人免费无码高潮喷水| 18禁成人网站免费观看| 国产性生交xxxxx免费| 亚洲av无码专区在线播放| 亚洲中文字幕无码中文字| 国产福利在线观看永久免费| 国产精品免费观看| 亚洲国产精品无码久久久久久曰| 久久精品国产亚洲av麻豆色欲| 久久水蜜桃亚洲AV无码精品| 久久精品国产这里是免费| 日本免费观看网站| 亚洲欧洲日产国产综合网| 男男黄GAY片免费网站WWW| 最近中文字幕大全中文字幕免费| 国产免费人成视频在线观看| 图图资源网亚洲综合网站| 黄人成a动漫片免费网站| 中国人xxxxx69免费视频| 区三区激情福利综合中文字幕在线一区亚洲视频1 | 国产成人精品日本亚洲11| jizz免费在线观看|