struts2系列学习笔记(8)---------------类型转换

类型转换需求的来源:

        表单中的数据是通过Action的属性来进行存储和传递的,但是作为Action的属性类型多样化,而表单数据直接获取出来的都是字符串类型,二者之间出现了不匹配的现象.

Struts2对类型转换的支持:

1.提供内置的类型转换器

         所谓内置的类型转换器就是Strut2支持该类型的直接转换,无需额外的操作.具体包括如下类型:

         String:将int,long,double,boolean,String类型的数组或java.util.Date类型转换为字符串

         boolean/Boolean:在字符串和布尔类型之间进行转换

         char/Character:在字符串和字符之间进行转换

        int/Integer,float/Float,long/Long,double/Double:在字符串和数值型的数据之间进行转换

        date:在字符串和日期类型之间进行转换

        array

        collection

2.自定义类型转换器

       如果Struts2内置的类型转换器不能满足你的需求,你可以自定义类型转换器.以满足需求.

      方法:

                1)编写类型转换器类

                2)配置类型转换器

1)      自定义类型转换器类编写的三种方式,最后一种方式最为常用:

      1.实现ogn.TypeConverter接口

                    public Object convertValue(Map context,Object target,Member member,String propertyName,Object value,Class toType);

      2.实现ognl.DefaultTypeConverter类(该类实现了ogn.TypeConverter接口)

                   public Object convertValue(Map context,Object value,Class toType);

      3.实现org.apache.struts2.util.StrutsTypeConverter类(该类是ognl.DefaultTypeConverter类的子类,本身是一个抽象类)

                   public abstract Ojbect convertFromString(Map context,String[] values,Class toClass)

                   public abstract String convertToString(Map context,Object o)

2)配置类型转换器

           类型转换器按照应用范围划分为2种配置

           (1)全局范围的类型转换器

                         方法:  在CLASSPATH的根目录下创建一个名为xwork-conversion.properties的文件

                                    在该文件中提供一个属性名值对,属性名为要转换的类的名称,属性值为类型转换器的类名称

           (2)应用于特定类的类型转换器

                        方法:在特定类所在的包中创建一个名为ClassName-conversion.properties的文件(ClassName替换为实际的类名)

                                      在该文件中提供一个属性名值对,属性名为要类的属性名,属性值为类型转换器的类名称

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看REAdMe.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看REAdMe.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看READme.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值