struts2自定义类型转换器

struts2自定义类型转换器

ID:25986365

大小:109.00 KB

页数:4页

时间:2018-11-24

struts2自定义类型转换器_第1页
struts2自定义类型转换器_第2页
struts2自定义类型转换器_第3页
struts2自定义类型转换器_第4页
资源描述:

《struts2自定义类型转换器》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、文章内容来自Java私塾2013-12-27struts2自定义类型转换器11.3  自定义类型转换器11.3.1概述虽然内建类型转换器能满足绝大多数的需求,但是,有的时候还是需要使用自定义类型转换器来实现特定的需求。还是用前面的长方形来说明,如果用两个文本框分别输入长方形的高和宽,整个类型装换都没有问题,它可以工作的很好。但是,如果我们想在一个文本框内同时输入宽和高(width:height),形如16:9,这个时候就需要自定义类型转换器了。11.3.2实现自定义类型转换器自定义类型转换器的实现非常简单,写一个类,继承Stru

2、tsTypeConverter抽象类,该类在org.apache.struts2.util包内,这个抽象类有两个方法需要我们实现:·publicObjectconvertFromString(Mapcontext,String[]values,ClasstoClass)方法,实现字符串向对象的转换,它有三个参数:l        context:转换上下文,可以在里面引用各种对象,比如:可以通过context.get(ValueStack.VALUE_STACK)来引用值栈。l        values:用户输入的字符串。l 

3、       toClass:将要被转换成的对象类型。·publicStringconvertToString(Mapcontext,Objecto)方法,实现对象向字符串的转换,它有两个参数:l        context:同上,也是转换的上下文。l        o:需要被转换的对象。实现示例功能的自定义类型转换器,示例代码如下: java代码:查看复制到剪贴板打印1.public class RectangleConverter extends StrutsTypeConverter {  2.    /** 3.   

4、  * 长方形向字符串转换 4.     */  5.    public Object convertFromString(Map context, String[] values, Class toClass) {  6.        //用户输入,比如16:9  7.        String userInput = values[0];  8.        String[] arr = userInput.split(":");  9.        //在真正的格式转换之前,先把所有的用户输入可能的错误拦截住  

5、10.        if (arr.length!=2){  更多内容在‘java私塾官网’文章内容来自Java私塾2013-12-271.            throw new TypeConversionException("请输入正确的长方形格式如,width:height");  2.        }  3.        try{  4.            Rectangle rectangle = new Rectangle();  5.            int width = Integer.pa

6、rseInt(arr[0]);  6.            int height = Integer.parseInt(arr[1]);  7.            rectangle.setWidth(width);  8.            rectangle.setHeight(height);  9.            return rectangle;  10.        }catch(RuntimeException e){  11.            throw new TypeConversi

7、onException("请输入正确的长方形格式如,width:height",e);  12.        }  13.    }  14.    /** 15.     * 字符串向长方形转换 16.     */  17.    public String convertToString(Map context, Object o) {  18.        Rectangle rectangle = (Rectangle) o;  19.        return "长方形:宽"+rectangle.getWidt

8、h()+",高"+rectangle.getHeight();  20.    }  21.}  在这里,需要注意在convertFromString方法中,用户输入的字符串很可能是不符合要求的,所有的不符合要求的情况都要抛出TypeConversionExce

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。