自定义类型转换器(转换器的注册方法)

DataX 运行时加载自定义 transformer 插件 如何让 DataX 运行时加载自定义 transformer 插件 早该知道的一种更高级的 transformer 自定义方法。 前言 之前的文章有介绍过通过自定义 transformer 在 DataX 上实现 ETL(Extract Transform Load) 过程中定制化的数据处理,当时的实现方法是自定义插件并手写代码注册到com/alibaba/datax/core/transport... 阅读详情

类型转换拦截器:把参数转换为action使用的格式,从客户端传过来的任何数据都是字符串类型的,struts2提供了一些转换器,如:字符串转整数,字符串转集合,字符串转日期。然而有些类型struts2并不能帮我们转换。这时需要自定义类型转换器。

字符串转各种类型的工程下载地址如下:http://download.csdn.net/source/2883615

自定义类型转换器:

1.写一个类型转换器:

//这是一个java.awt.Point的类型转换器

package com.xie.convertors;

import java.awt.Point;

 

import com.opensymphony.xwork2.conversion.impl.DefaultTypeConverter;

 

 

public class PointConvertor extends DefaultTypeConverter {

 

    @Override

    public Object convertValue(Object value, Class toType) {

       if (toType==Point.class) {

           Point p=new Point();

           String[] str=(String[]) value;

           String[] xy=str[0].split(",");

           p.x=Integer.parseInt(xy[0]);

           p.y=Integer.parseInt(xy[1]);

           return p;

       }

 

       return super.convertValue(value, toType);

    }     

}

2.注册类型转换器:

有三种方法,注册局部转换器:命名规范:ationname-conversion.propertiesactionname必须与对应的action的名字一样),存放路径:与action的在同一路径文件内容:p=com.xie.conver.PointConvertorpaction的成员变量,当struts2的默认类型转换器无法处理p时,就交给com.xie.conver.PointConvertor类型转换器处理)

 

注册全局转换器:命名规范:xwork-conversion.properties(这是固定写法),存放路径:位于src目录下,文件内容:java.awt.Point=com.xie.convertors.PointConvertor(前边是遇到struts2不能自动转换的类型,后边是指定的这种类型的自定义转换器)

注解指定自定义转换器:查了struts2.2.1的帮助文档,没有发现注解指定转换器。所以我不知道。

这儿通常会出现如下异常:

Jsp前端错误提示:

Struts has detected an unhandled exception:

Messages:

·  No result defined for action com.xie.interceptor.InterceptorAction and result input

通常是struts2默认类型转换失败,同时没有找到自定义的转换器。

 

后台错误提示

Error setting expression 'p' with value '[Ljava.lang.String;@a498d0'

ognl.MethodFailedException: Method "setP" failed for object com.xie.convertor.action.Convertor@e426a3 [java.lang.NoSuchMethodException: com.xie.convertor.action.Convertor.setP([Ljava.lang.String;)]

这个错误是:没有找到setPString)方法,即转换失败。

SpringMVC_15_自定义类型转换器 ConversionService是Spring类转换体系的核心接口。 可以利用ConversionSeviceFactoryBean在Spring的IOC容器中定义ConversionService.Spring将自动识别出IOC容器中的ConversionService,并在Bean属性配置及Spring MVC处理方法入参绑定等场合使用它进行数据的转换 可通过ConversionServ... 阅读详情

相关推荐

自定义类型转换器

Struts2自定义类型转换器 如果用户登陆后,可以访问Action中的所有方法,如果用户没有登陆,不允许访问Action中的方法。并且提示你没有权限执行该操作!

Spring中自定义类型转换器

Spring中自定义类型转换器具体实现

x2656271356的博客 1038

【Spring】自定义类型转换器

一、类转换器 作用:Spring 通过 类转换器 把 配置文件 中 字符串 类的数据,转换成了对象中成员变量对应类的数据,进而完成了注入。 自定义类型转换器 产生原因:当 Spring 内部没有提供特定类转换器时,而程序员在应用的过程中还需要使用,那么就需要程序员自己定义类转换器。 [开发步骤]: ...

See_Star的博客 1371

Spring MVC--自定义类型转换器

1.实现Converters<S,T>接口,重写convert(S)方法,convert(S)功能是将S类的源数据转换成T类的目标数据。 package com.testRecal.Converters; import org.springframework.core.convert.converter.Converter; import com.testRecal.en...

xiao_shixiong的博客 313

Mybatis 自定义类型转换器

转换器 1. 简介 org.apache.ibatis.type.BaseTypeHandler 上图是mybatis自带的部分类转换器,基本全部覆盖了java常用类。 2. 自定义类型转换器 参考官网示例即可 3. 流程 3.1 初始化自带的类转换器 package org.apache.ibatis.type; public class TypeHandlerRegistry{ public TypeHandlerRegistry(Configuration configuration)

博客 1074

struts2自定义类型转换器

大多数情况下只需要使用Struts2提供的类转换器以及基于OGNL的类转换机制就能满足大部分类转换需求。但是如果需要把一个字符串转换成一个复合对象(例如User对象)时,这就需要使用自定义类型转换器。例如,用户输入一个admin,12345字符串,我们需要将其转换成一个User类实例,其中admin作为User实例的name属性,12345作为User实例的password属性

想念的专栏 599

javaWeb开发struts 自定义类型转换器

javaWeb开发struts 自定义类型转换器

Abert 445

DWR中数组的使用

近日研究DWR,对于数组的转换始终有些不太明白,昨天终于了解了DWR中数组转换器的使用方法,特辑之。        首先,DWR中对于原始类的数组是可以自动转换的,但是对于自定义类型的数组则是难以自动转换,例如package.x.y.z.Person[]类,如果不设置转换器,则默认会使用bean转换器进行转换,所以会导致各种错误(呜呜),所以要注册对应的array转换器    正确的array...

hintcnuie 164

Struts 2读书笔记-----Struts 2的自定义类型转换器

大部分时候,我们使用Struts 2内建的类转换器就可以满足大部分类转换需求了。但是在有些特殊的情况下,如:需要把一个字符串转换成一个复合对象时,这个时候就需要使用自定义类型转换器了。           实现自定义类型转换器一般需要实现以下两步:             1、编写自己的类转换器             2、注册转换器             1、自定义类型转换

chenssy 的技术博客 3391

Struts2的类转换器

Struts2的类转换器 一、概述      在B/S应用中,将字符串请求参数转换为相应的数据类,是MVC框架提供的功能,而Struts2是很好的MVC框架实现者,理所当然,提供了类转换机制。      Struts2的类转换是基于OGNL表达式的,只要我们把HTML输入项(表单元素和其他GET/POET的参数)命名为合法的OGNL表达式,就可以充分利用Struts2的转

stone的专栏 3471

SpringMVC(7)——类转换器Converter

目录 概述 内置的类转换器 自定义类型转换器 创建实体类 创建控制器类 创建自定义类型转换器注册转换器 创建JSP视图文件 运行效果 概述 SpringMVC框架的Converter<S,T>是一个可以将一种数据类转换成另一种数据类的接口,这里S表示源类,T表示目标类。开发者在实际应用中使用框架内置的类转换器基本上就够了,但有时需要编写具有特定...

二木成林 2270

Struts2自定义类型转换器

Struts2自定义类型转换器 一、基于OGNL的类转换器 Struts2的类转换器都需要实现一个TypeConverter接口,该接口位于ognl.jar包内,也是就Struts2框架的转换器使用了OGNL技术。该接口定义了一个convertValue()方法,实现该接口的类转换器实现类都需要重写该方法来进行类转换。OGNL还提供了一个实...

weixin_30471065的博客 130

Struts自定义类型转换器

Struts2的自定义类型转换器: 如何实现?     1、 继承StrutsTypeConverter并且覆盖convertFromString和convertToString方法;     2、 注册转换器        ①局部类转换器,局部类转换器只对当前Action起作用,需要提供如下配置文件:         MyActionName-conversion.proper

刚刚 605

Halcon形态学与Blob连通域分析工业实战指南

连通域分析是机器视觉中将图像像素聚类为可识别目标的基础技术,其核心在于形态学运算对噪声与目标的物理建模能力。通过腐蚀、膨胀、开闭运算等操作,可在数字域内映射光学分辨率、机械定位精度等真实约束;而Blob分析则依托connection、select_shape等算子,将连通区域转化为面积、长宽比、方向等可量化特征,支撑缺陷判定与定位决策。该技术广泛应用于AOI检测、锂电池极片分析、光伏隐裂识别等高可靠性工业场景,尤其依赖Halcon平台对亚像素精度、ROI裁剪及实时性能的深度优化支持。

weixin_30613727的博客 306
上一篇: Struts2拦截器原理(拦截器设计体现的一种编程理念——面向切面编程AOP)
下一篇: 拦截器的模拟(java project)
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值