Struts2 -- 类型转换

struts2中的类型转换器根接口是:com.opensymphony.xwork2.conversion.TypeConverter。

在web中我们使用beanutils直接将表单数据封装到javaBean中。---类型转换
    
    struts2中action得到请求参数,也可以直接封装到javaBean.
    
        struts2 内部提供大量类型转换器,用来完成数据类型转换问题
        boolean 和 Boolean
        char和 Character
        int 和 Integer
        long 和 Long
        float 和 Float
        double 和 Double
        Date 可以接收 yyyy-MM-dd格式字符串
        数组  可以将多个同名参数,转换到数组中
        集合  支持将数据保存到 List 或者 Map 集合
        
        例如:日期类型,我们传递  yyyy-MM-dd  yyyy年MM月dd日格式都可以,但是如果是yyyy/MM/dd就会出现问题.

2.自定义类型转换器
        
        步骤:
            1.创建一个类实现TypeConverter接口.
            2.重写接口中方法,实现类型转换操作.
            3.注册类型转换器.
            
        详解说明:
            1.创建一个自定义类型转换器
                1.实现TypeConverter需要重写
                    public Object convertValue(Map<String, Object> context, Object target, Member member, String propertyName, Object value, Class toType);
                    如果实现接口,这个方法参数太多(6个)
                    
                2.不推荐实现接口,可以继承 DefaultTypeConverter类
                    优点:重写的方法参数没有那么多
                     public Object convertValue(Map<String, Object> context, Object value, Class toType) {
                            return convertValue(value, toType);
                    }
        
                3.个人推荐使用 继承DefaultTypeConverter类的一个子类StrutsTypeConverter.
                    原因:在这个类中将从页面传递的数据怎样封装,以及action中的数据怎样在页面上显示做了分离.
                    
                      public abstract Object convertFromString(Map context, String[] values, Class toClass);
                      public abstract String convertToString(Map context, Object o);

2.注册一个自定义类型转换器.
                
                1.局部--针对于action
                     配置文件所在位置以及名称:  在Action类所在包 创建 Action类名-conversion.properties ,
                     配置文件书写:    格式 : 属性名称=类型转换器的全类名
                2.局部--针对于model
                     配置文件所在位置以及名称:  在model类所在包 创建 model类名-conversion.properties ,
                     配置文件书写:    格式 : 属性名称=类型转换器的全类名
                3.全局
                    配置文件所在位置以及名称:在src下创建一个xwork-conversion.properties
                    配置文件书写:  格式:  要转换的类型全名=类型转换器的全类名

时间: 2024-11-03 05:39:49

Struts2 -- 类型转换的相关文章

14.怎样自学Struts2之Struts2类型转换[视频]

14.怎样自学Struts2之Struts2类型转换[视频] 之前写了一篇"打算做一个视频教程探讨怎样自学计算机相关的技术",优酷上传不了.仅仅好传到百度云上: http://pan.baidu.com/s/1kTDsa95 有问题能够直接回复这篇文章.

14.如何自学Struts2之Struts2类型转换[视频]

14.如何自学Struts2之Struts2类型转换[视频] 之前写了一篇"打算做一个视频教程探讨如何自学计算机相关的技术",优酷上传不了,只好传到百度云上: http://pan.baidu.com/s/1kTDsa95 有问题可以直接回复这篇文章.

Struts2类型转换(二)-自定义类型转换器

一.自定义类型转换器 1). 为什么需要自定义的类型转换器 ? 因为Struts不能自动完成字符串到引用类型的转换. 2). 如何定义类型转换器? I. 开发类型转换器的类: 扩展 StrutsTypeConverter 类: II. 配置类型转换器. 有两种配置方式 ①. 基于字段的配置: > 在字段所在的 Model(可能是 Action,也可能是一个JavaBean) 的包下, 新建一个 ModelClassName-conversion.properties 文件 > 在该文件中输入键

Struts2类型转换错误消息的显示

struts2类型转换时出错,比如Action中需要int类型数据,但却传入了不能转换为int类型的数据,比如abcd,不能转换为int form表单页: 1 <s:form action="conversionAction" namespace="/"> 2 Age:<s:textfield name="age"></s:textfield> 3 <br/> 4 <s:submit>&

Struts2类型转换(一)

一.类型转换概述 1. 从一个 HTML 表单到一个 Action 对象, 类型转换是从字符串到非字符串. 因为HTTP 没有 “类型” 的概念,每一项表单输入只可能是一个字符串或一个字符串数组.因此, 在服务器端, 必须把 String 转换为特定的数据类型.(详细讲述可参考<Struts2技术内幕-深入解析Struts2架构设计与实现原理>的第6章-“OGNL,数据流转的催化剂”中的6.1.1节-数据流转的困境) 2. 在 struts2 中, 把请求参数映射到 action  属性的工作

Struts2类型转换(三)-类型转换与复杂属性的配合使用

一.类型转换与复杂属性配合使用 示例图示:form 标签的 name 属性可以被映射到一个属性的属性. 1)JSP页面主要代码如下: 1 <s:form action="testComplextProperty"> 2 <s:textfield name="deptName" label="DeptName"></s:textfield> 3 <!-- 映射属性的属性 --> 4 <s:tex

struts2类型转换与校验总结

1.struts2的类型转换分为全部变量转变和局部变量转变. 2.struts2对8中常见的基本类型的属性变量,可以自动转换.如果是User对象,可以手动简历UserAction-coversion.properites等配置文件, Action在继承DefaultTypeConverter,或者StrutsTypeConverter,重载方法实现自定义转换. 3.为什么jsp前台页面的String可以传递到后台,并且转换成对象的属性. 一来可以手动通过自定义类型转换,有一个转换的流程. 4.v

java学习笔记 (2) —— Struts2类型转换、数据验证重要知识点

1.*Action.conversion-properties 如(point=com.test.Converter.PointListConverter) 具体操作类的配置文件 2.*Action.properties 如(invalid.fieldvalue.graduation=\u6bd5\u4e1a\u65e5\u671f\u8f93\u5165\u9519\u8bef) 具体字段错误提示信息的配置文件 2.struts.xml 中 <action name="register&

struts2类型转换中的错误处理

由于类型转换过程中有可能出现原始参数无法转换为目标类型的错误,所以struts2提供了类型转换中的异常处理机制. 在struts2的默认配置文件struts-default.xml中有如下一段配置代码 <interceptors> <interceptor-stack name="defaultStack"> <interceptor-ref name="conversionError"></interceptor-ref&