流程:
1.创建一个vo包,用来存放表示层的数据,并且封装成对象保存.
2.创建一个conversion包,用来存放自定义类型转换器
3.配置自定义类型转换器
a.全局类型转换器
b.局部Action类型转换器
com.sun.vo
里面存放了一个point,point 有2个属性,分别为int x,int y
com.sun.conversion
里面存放了一个PointConverter,该类继承了StrutsTypeConverter
package com.sun.conversion;
import java.util.Map;
import org.apache.struts2.util.StrutsTypeConverter;
import com.sun.entity.Point;
public class PointConverter extends StrutsTypeConverter{
@Override
public Object convertFromString(Map arg0, String[] arg1, Class arg2) {
String str=arg1[0];
String point[]=str.split(",");
Point p=new Point();
p.setX(Integer.parseInt(point[0]));
p.setY(Integer.parseInt(point[1]));
return p;
}
@Override
public String convertToString(Map arg0, Object arg1) {
Point p=(Point) arg1;
return "x:"+p.getX()+"y:"+p.getY();
}
}
局部配置文件定义PointAction-conversion.properties
属性名称=转换器的位置
point=com.sun.conversion.PointConverter
===========================================
下面是日期转换器的定义
package edu.accp.conversion;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Map;
import org.apache.struts2.util.StrutsTypeConverter;
public class DateConverter extends StrutsTypeConverter {
SimpleDateFormat[] sdf = { new SimpleDateFormat("yyyy-MM-dd"),
new SimpleDateFormat("yyyy年MM月dd"),
new SimpleDateFormat("yyyy/MM/dd") };
@Override
public Object convertFromString(Map arg0, String[] values, Class arg2) {
Date time=null;
for (SimpleDateFormat s : sdf) {
try {
time=s.parse(values[0]);
break;
} catch (Exception e) {
continue;
}
}
return time;
}
@Override
public String convertToString(Map arg0, Object obj) {
SimpleDateFormat s=new SimpleDateFormat("yyyy-MM-dd");
return s.format(obj);
}
}
全局的配置文件设置为xwork-conversion.properties
属性名称=转换器的位置
java.util.Date=com.sun.conversion.DateConverter
分享到:
相关推荐
"浅谈 JVM 原理" JVM(Java Virtual Machine)是一种虚拟机,它可以模拟完整的硬件系统功能,运行在一个完全隔离的环境中,提供了一个完整的计算机系统。JVM 可以分为三类:VMWare、Visual Box 和 JVM。其中,...
它能够从Oracle数据库中提取数据,并通过自定义的模板来呈现这些数据,从而生成高质量的报表、发票、信件等。 #### 二、测试环境 本文档基于以下环境进行测试: - **应用环境**:Oracle E-Business Suite (EBS) ...
`getByClass`函数用于根据class属性获取页面中的元素,它不仅支持直接调用`getElementsByClassName`方法,还兼容了老版本的IE浏览器。而`addSheetFile`函数则是为动态添加外部样式表提供了一个简便的实现方式。 在...
**标题:“浅谈Datafactory”** Datafactory是一个强大的数据处理工具,它允许用户构建、部署和管理数据集成工作流。这个工具的核心理念是提供一个灵活的平台,以便于在不同的数据源之间移动、转换和清洗数据,从而...
在问题排查过程中,作者在将Variable转换为Tensor时错误地设置了requires_grad参数,后来发现问题在于应该调整target的尺寸,以适应train_pred。 6. 解决方案和最佳实践 文档最终给出了解决方案,即直接将model...
1. **消息发送者(message sender)**:在Windows中,操作系统是消息发送者,它将用户的输入转换成消息并放入应用程序的消息队列。例如,当用户点击鼠标时,系统会产生一个消息,并将其发送到目标窗口的队列。 2. *...
`TreeMap`按照键的自然排序或自定义比较器排序;`LinkedHashMap`则保持元素的插入顺序或者访问顺序。 Java集合框架还包括了一些其他接口和类,如`Queue`(队列)、`Deque`(双端队列)、`PriorityQueue`(优先队列...
2. 避免使用复杂的转换器(Converter),因为它们可能导致性能下降。 3. 不要在ListBox内部嵌套另一个ListBox,这将增加内存消耗和计算复杂性。 4. 尽量不使用用户控件(UserControl)在DataTemplate中,因为它们...
如果需要自定义转换逻辑,可以创建一个实现了`PropertyEditor`接口的类,并在Spring配置中注册它,或者通过`@Component`注解使其成为Spring管理的bean。 总的来说,Spring的属性编辑器是连接配置文件和JavaBean属性...
天馈分机负责将高频雷达微波信号变频为中频信号,然后通过高速A/D变换器将其转换为数字信号,再由FPGA进行数字信号处理,最终通过D/A变换器将处理后的数字信号转换成模拟信号输出。 全球知名的FPGA生产厂商包括...
XML生成器则将分析结果转换为XML格式,便于数据交换和处理。 系统软件实现分为智能视频分析模块和视频编码与发送模块。前者负责接收原始视频,进行解复用、智能分析和规则应用,后者则通过DSP进行H.264编码,利用...
Retrofit支持自定义数据转换器,如GsonConverter、JacksonConverter等,以便于处理不同格式的服务器响应数据。在示例中,`listRepos` 方法直接返回了 `List<Repo>` 类型,这是因为Retrofit默认使用Gson将JSON数据...
总结来说,Spring MVC提供了强大的功能来接收和处理JSON数据,这涉及到请求映射、数据绑定、消息转换器等多个方面。开发者需要了解这些机制,以便有效地在Web应用中处理JSON数据。在开发过程中,也需要注意各种异常...
在第二个示例中,创建了一个 `TreeSet` 并传入了一个自定义的 `Comparator`,这个比较器用于比较 `Object` 类型的值,将其转换为整数并进行比较,以实现倒序排序。当添加元素到 `TreeSet` 中时,它们会根据比较器的...
PLINQ结合了LINQ查询的简洁性和并行计算的性能优势,允许开发者在不改变原始查询结构的情况下,轻松地将查询转换为并行执行。 并发和并行虽然经常一起使用,但两者之间存在区别。并发是指多个线程在一段时间内交替...
在Python的Django框架中,PostgreSQL数据库是一个广泛使用的存储后端,因为它提供了丰富的...通过自定义或利用现有的高级编码器,如DRF的JSONEncoder,可以确保我们的应用程序能够稳定、高效地处理各种复杂的数据类型。
另外,`addQuillTitle`可能是一个自定义工具,用于在富文本编辑器中添加标题,它可能是一个单独的工具函数,用于处理标题样式或操作。 在CSS导入部分,我们包含了`quill.core.css`, `quill.snow.css` 和 `quill....
`module.rules`数组里的规则定义了如何处理不同类型的模块,这里我们配置了处理.js和.jsx文件的规则,使用`babel-loader`进行转换,同时指定`@babel/preset-env`和`@babel/preset-react`预设,以便支持ES6和React...