• Struts2 类型转换


    基于字段的转换:

    1、写一个类,继承DefaultTypeConverter,覆盖convertValue(Object value, Class toType)

     1 public Object convertValue(Object value, Class toType) {
     2         if(value==null || toType==null || toType!=java.util.Date.class )
     3         {
     4             return false;
     5         }
     6         if(value instanceof java.lang.String[])
     7         {
     8             String[] strs=(String[])value;
     9             if(strs[0]!=null && strs[0].length()>0)
    10             {
    11                 try {
    12                     SimpleDateFormat sdf=new SimpleDateFormat("yyyy-DD-mm");
    13                     return sdf.parse(strs[0]);
    14                 } catch (ParseException e) {
    15                     /*
    16                      * 在struts2框架里,自定义的类型转换器,
    17                      *  如果我们不手动抛出异常,struts2框架只捕获异常,但是并不抛出。
    18                      *  所以框架就会认为类型转换器转换成功,转向成功页面。
    19                      */                    
    20                     throw new RuntimeException(e);
    21                 }
    22             }
    23         }
    24         return new Date();
    25     }

     2、在调用转换转换类的文件夹下,新建一个:类名_conversion.properties,里面配置key=  要转换的类   value=  转换类的全名(cn/.../..conver..)

      

    1 birthday=cn.test.type.DataConver

    3、我们知道,有可能转换失败,所以我们需要显示转换失败信息

      <%@ taglib uri="/struts-tags" prefix="s" %>

      <s:fielderror fieldName="user.birthday"/>

      *但是这样的失败信息是英文,所以我们需要显示为中文信息在类文件夹下,新建一个xml文件,里面设置

      xwork.default.invalid.fieldvalue=提示信息 "{0}".({0}代表字段)

      如果要针对字段进行个性化提示,可以在下面添加:

      invalid.fieldvalue.字段名=提示信息

      *将xml注册到struts.xml中

      

    1 <!-- 
    2         配置所有资源文件,省略后缀名,如果配置多个资源文件时,用","隔开。不仅是国际化资源文件
    3         * 类型转换器的错误提示资源文件(省略后缀名)
    4      -->
    5     <constant name="struts.custom.i18n.resources" 
    6             value="cn.test.type.converter,cn.itcast.i18n.resources">
    7     </constant>

    还可以基于类的转换:转换文件不变,在类的文件夹下新建xwork-conversion.propertices文件,在里面配置

    要转换的类型(java.utiils.xxx)=转换类的全路径(cn.x.xxx)

  • 相关阅读:
    P1772 [ZJOI2006]物流运输
    P4290 [HAOI2008]玩具取名
    P1859 不听话的机器人
    P1841 [JSOI2007]重要的城市
    P2182 翻硬币
    P1908 逆序对(归并排序)
    P1010 幂次方(分治)
    P3386 【模板】二分图匹配
    P2158 [SDOI2008]仪仗队
    P1582 倒水(贪心 + lowbit)
  • 原文地址:https://www.cnblogs.com/liuwt365/p/4206818.html
Copyright © 2020-2023  润新知