博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Struts2 学习笔记20 类型转换part2 写自己的转换器
阅读量:6280 次
发布时间:2019-06-22

本文共 1300 字,大约阅读时间需要 4 分钟。

  之前说的是调用Struts2的默认转换器,现在我们来说以下写自己的转换器,这个一般不常用,在访问不是自己写的类中可能用到。我们一点点来,因为写自己的转换器需要注意的东西还是很多的。

  我们还是用之前的项目,新建一个Point,Point对象有xy属性没有set()方法,尽管我们可以用p.x来访问,现在我们不这样传递参数,我们传进来http://localhost:8080/Struts2_3700_type_conversion/test?p=2,3,这时候我们就要用到自己的转换器了。

  我先把转换器贴出来看一看。

MyPointConverter.java

 

package com.tfj.converter;import java.awt.Point;import com.opensymphony.xwork2.conversion.impl.DefaultTypeConverter;public class MyPointConverter extends DefaultTypeConverter{	@Override	public Object convertValue(Object value, Class toType) {		if(toType==Point.class){			Point p = new Point();			String[] strs = (String[]) value;			String[] xy = strs[0].split(",");			p.x=Integer.parseInt(xy[0]);			p.y=Integer.parseInt(xy[1]);			return p;					}		if(toType==String.class){			value.toString();		}						return super.convertValue(value, toType);	}	}

 

  一会儿我们再来看转化器的实现,在用自己的转换器之前还需要注册,一般呢有三种注册方式。

 

 1.action注册

     提供如下格式的文件 

文件名:  ActionName-conversion.properties  
内容:多个propertyName(属性名)=类型转换器类(含包名),如  p=com.tfj.converter.MyPointConverter 
存放位置:和ActionName类相同路径。 

 2.全局注册

    提供如下格式的文件 

文件名:  xwork-conversion.properties 
内容:   多个“复合类型=对应类型转换器”项组成,如  java.awt.Point=com.tfj.converter.MyPointConverter 
存放位置:WEB-INF/classes/目录下。 

3.使用 JDK1.5 的注释来注册转换器。

  接下来来说下转换器的实现,其实是传进来2,3先调用split()方法把它用“,”分割,再把“2”赋值给p.x,“3”赋值给p.y就可以了。(在注册的时候.properties文件的名字是固定的)。

 

转载地址:http://hdiva.baihongyu.com/

你可能感兴趣的文章
Mysql-5.6.x多实例配置
查看>>
psutil
查看>>
在git@osc上托管自己的代码
查看>>
机器学习算法:朴素贝叶斯
查看>>
小五思科技术学习笔记之扩展访问列表
查看>>
使用Python脚本检验文件系统数据完整性
查看>>
使用MDT部署Windows Server 2003 R2
查看>>
Redhat as5安装Mysql5.0.28
查看>>
通过TMG发布ActiveSync
查看>>
Web服务器的配置与管理(4) 配置访问权限和安全
查看>>
爆牙齿的Web标准面试考题II(iPhone SMS/iChat UI的Web标准实现)
查看>>
XMOVE3.0手持终端——软件介绍(二):在2KB内存的单片机上实现的彩屏GUI控件库
查看>>
MVC系列——MVC源码学习:打造自己的MVC框架(三:自定义路由规则)
查看>>
找小于N 的所有质数
查看>>
Windows下的Jupyter Notebook 的介绍(写给新手)(图文详解)
查看>>
iOS开发-CocoaPods实战
查看>>
JS组件系列——Bootstrap 树控件使用经验分享
查看>>
HTML-color:rgb()-颜色渐进
查看>>
数据库实例: STOREBOOK > 表空间 > 编辑 表空间: UNDOTBS1
查看>>
Mcad学习笔记之异步编程(AsyncCallback委托,IAsyncResult接口,BeginInvoke方法,EndInvoke方法的使用小总结)...
查看>>