- 1、本文档共11页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
struts2数据型转换
Struts2的类型转换
类型转换的意义
Web应用程序的交互都是建立在HTTP之上的,互相传递的都是字符串。也就是说服务器接收到的来自用户的数据只能是字符串或者是字符数组,而在Web应用的对象中,往往使用了多种不同的类型,如整数(int)、浮点数(float)、日期(Date)或者是自定义数据类型等。因此在服务器端必须将字符串转换成合适的数据类型,
如果在类型转换中出现异常,类型转换器开发者无需关心异常处理逻辑,Struts2的
conversionError拦截器会自动处理该异常,并且提示在页面上生成提示信息。
自定义的类型转换器:
Struts 2已经实现了一些常用的类型转换器,但是这毕竟这些类型转换器毕竟还是有限的。如果是开发者自己定义的数据类型,就必须自定义类型转换器来进行转换。
·实现自定义类型转换器的两种方式:
第一种方式:(例子:TypeConvent2)
OGNL(Object Graph Navigation Language)是一种强大的表达式语言。可以通过OGNL提供的TypeConvert接口以及实现了TypeConvert接口的DefaultTypeConvert类来实现自定义的类型转换器。
TypeConvert接口
public interface TypeConverter
{
public Object convertValue(Map context,
Object target,
Member member,
String propertyName,
Object value,
Class toType );
} DefaultTypeConvert类
public class DefaultTypeConverter implements TypeConverter{
public DefaultTypeConverter(){
super();
}
/**
* @param context:类型转换的上下文
* @param value:需要转换的参数
* @param toType:转换后的目的类型
*/
public Object convertValue(Map context,
Object value,
Class toType)
{
return OgnlOps.convertValue(value, toType);
}
public Object convertValue(Map context, Object target,
Member member, String propertyName,
Object value, Class toType)
{
return convertValue(context, value, toType);
}
} convertValue方法的作用:
该方法负责完成类型的双向转换,为了实现双向转换,我们通过判断toType的类型即可判断转换的方向。toType类型是需要转换的目标类型,如:当toType类型是User类型时,表明需要将字符串转换成User实例;当toType类型是String类型时,表明需要把User实例转换成字符串类型。
通过toType类型判断了类型转换的方向后,我们就可以分别实现两个方向的转换逻辑了。
实现类型转换器的关键就是实现conertValue方法,该方法有三个参数:
第二种方式:基于Struts2的类型转换器(例子:TypeConvent3)
Struts 2提供了一个StrutsTypeConverter的抽象类,这个抽象类是
DefaultTypeConverter类的子类。开发时可以直接继承这个类来进行转换器的构建。通过继承该类来构建类型转换器,可以不用对转换的类型进行判断(和第一种方式的区别)。
·StrutTypeConverter类的代码:
package org.apache.struts2.util;
import java.util.Map;
import com.opensymphony.xwork2.conversion.impl.DefaultTypeConverter;
public abstract class StrutsTypeConverter extends DefaultTypeConverter {
//重写DefaultTypeConverter类的convertValue方法
public Object convertValue(Map context, Object o, Class to
您可能关注的文档
最近下载
- Unit 5 We’re family第2课时(课件)2024-2025学年度-外研版(三起)(2024)英语三年级上册.pptx VIP
- 教育教学设计:青少年科技辅导员论文(马伟)2016-3.doc VIP
- 塞斯纳172飞机起落架系统可靠性分析.docx
- 《WPS办公与应用》期末考试复习题库(含答案).docx
- DDS软件-AMADEUS5.doc
- 小学英语课程与教学论.pptx VIP
- 以色列DDS门禁系统Amadeus5技术培训使用手册.pdf
- 说明分析柏林广场b21绿宝书.docx
- 17J008 挡土墙(重力式、衡重式、悬臂式)(必威体育精装版).pdf
- 清洁生产与清洁生产审核(培训)演示文稿.ppt VIP
文档评论(0)